Phiên bản 1.0 · Hiệu lực từ 29/08/2026 · Bản tiếng Việt là bản có hiệu lực
Tài liệu này mô tả các biện pháp bảo mật đang thực sự được triển khai. Nơi nào chưa triển khai, tài liệu ghi rõ là chưa. Theo nguyên tắc an toàn thông tin, tài liệu không nêu ngưỡng phát hiện cụ thể, đường dẫn quản trị hay chi tiết cấu hình có thể dùng để tấn công.
| Biện pháp | Trạng thái |
|---|---|
| HTTPS/TLS trên toàn bộ bề mặt công khai | Có |
| Buộc dùng HTTPS (HSTS), 1 năm, gồm tên miền con | Có — trên cả bề mặt API, trang quản lý tài khoản và console vận hành |
| Chống nhúng trang trong khung của người khác | Có — cả ba bề mặt |
| Chặn suy đoán kiểu tệp (nosniff) | Có — cả ba bề mặt |
| Kiểm soát thông tin trang tham chiếu | Có |
| Giới hạn quyền camera / micro / định vị / thanh toán | Có |
| Ẩn header nhận dạng công nghệ | Có |
| Chính sách nguồn nội dung (CSP) | CHƯA CÓ — đã ghi nhận là việc phải làm |
Cấu hình khi khởi động từ chối chạy ở môi trường thật nếu địa chỉ ứng dụng không phải HTTPS.
| Nội dung | Cách làm |
|---|---|
| Thuật toán | scrypt, khoá dẫn xuất 64 byte |
| Muối | 16 byte ngẫu nhiên, riêng cho từng mật khẩu |
| Định dạng lưu | tự mô tả thuật toán, cho phép nâng cấp về sau |
| So sánh | thời gian hằng số |
| Yêu cầu độ mạnh | tối thiểu 8 ký tự, phải có ít nhất một chữ và một số |
| Giới hạn thử đăng nhập | Có — theo địa chỉ IP và theo địa chỉ email, độc lập |
| Khoá tài khoản sau nhiều lần sai mật khẩu | CHƯA CÓ — chỉ có giới hạn tần suất |
Không có định dạng băm cũ hay đường dự phòng nào trong hệ thống — mọi mật khẩu đều là scrypt.
Chưa có xác thực hai yếu tố cho khách hàng. Đây là quyết định có ý thức ở giai đoạn này và được ghi nhận là việc nên làm. Xác thực hai yếu tố hiện chỉ áp dụng cho nhân sự vận hành.
| Nội dung | Cách làm |
|---|---|
| Sinh khoá | 28 byte ngẫu nhiên mật mã — 224 bit entropy |
| Lưu trữ | chỉ lưu giá trị băm HMAC với một khoá bí mật phía máy chủ |
| Bản rõ | trả về đúng một lần khi tạo; không có đường nào đọc lại |
| Thu hồi | ngay lập tức, không thể hoàn tác |
| Thu hồi tự động | khi tổ chức bị đình chỉ, khi ngắt kết nối máy, khi luân chuyển khoá của công cụ dòng lệnh |
| Trần chi tiêu theo khoá | Có — bạn tự đặt trần chi tiêu tháng cho từng khoá |
Điều này có nghĩa gì với bạn: nếu bạn mất khoá, TexAPI không thể gửi lại cho bạn — chỉ có thể thu hồi và cấp khoá mới. Nếu cơ sở dữ liệu của TexAPI bị đọc trái phép, khoá của bạn không dựng lại được từ đó.
Hai hạn chế phải công bố:
Authorization.| Loại | Cách bảo vệ |
|---|---|
| Khoá truy cập nhà cung cấp hạ tầng | AES-256-GCM khi lưu, có xác thực toàn vẹn; giải mã theo từng lần đọc; bộ đệm tạm chỉ chứa bản mã |
| Bí mật xác thực hai yếu tố của nhân sự | AES-256-GCM khi lưu |
| Token phiên, token xác minh email, token đặt lại mật khẩu, mã thiết bị | chỉ lưu giá trị băm HMAC |
| Token của nhà cung cấp đăng nhập xã hội | không lưu — dùng trong request rồi bỏ |
Khoá API của bạn không bao giờ được chuyển tiếp lên nhà cung cấp hạ tầng. Danh sách chặn header xác thực bảo đảm điều đó; TexAPI dùng khoá riêng của mình khi gọi hạ tầng.
Một hạn chế cần ghi nhận: khoá dùng để mã hoá các bí mật trên được dẫn xuất bằng một lượt băm đơn giản, không có phiên bản khoá — nghĩa là hiện chưa có đường luân chuyển khoá mã hoá. Đã ghi nhận là việc nên làm.
| Nội dung | Khách hàng | Nhân sự vận hành |
|---|---|---|
| Thời hạn | 30 ngày | 8 giờ |
| Lưu trên máy chủ | chỉ giá trị băm | chỉ giá trị băm |
| Không thể dùng lẫn hai loại phiên | Có — tách biệt ở tầng truy vấn cơ sở dữ liệu, không phải ở tầng mã kiểm tra | Có |
| Bạn tự xem và thu hồi | Có — kèm IP, thiết bị, hoạt động cuối | Có |
| Thu hồi toàn bộ khi đổi mật khẩu | Có | — |
| Xoá toàn bộ khi đặt lại mật khẩu | Có | — |
| Luân chuyển token giữa phiên | CHƯA CÓ | CHƯA CÓ |
| Hết hạn do không hoạt động | CHƯA CÓ — chỉ có thời hạn cố định | — |
Hai dòng cuối nghĩa là: một token bị chiếm ở ngày thứ nhất vẫn dùng được tới ngày thứ 30 nếu bạn không tự thu hồi. Vì vậy trang Cài đặt → Phiên đăng nhập là công cụ thật, nên dùng khi thấy bất thường.
Console vận hành là ứng dụng riêng, tên miền riêng, cookie riêng, phiên 8 giờ, và không cho công cụ tìm kiếm lập chỉ mục.
Phân quyền theo vai, 6 vai và 50 quyền riêng biệt. Nguyên tắc thực thi: quyền là tham số bắt buộc đầu tiên của mỗi tuyến quản trị, nên một tuyến quên kiểm tra quyền không viết ra được. Mọi hành động thay đổi dữ liệu đi qua một điểm duy nhất, nơi mỗi hành động không biên dịch được nếu không khai báo quyền, hành động ghi vết và loại đối tượng.
Vai được thiết kế theo nguyên tắc quyền tối thiểu: vai kỹ thuật không có bất kỳ quyền tài chính nào; vai tài chính không có quyền hạ tầng hay quyền đọc bí mật nhà cung cấp; vai marketing không có quyền xem dữ liệu cá nhân của khách; vai hỗ trợ có thể đình chỉ và thu hồi nhưng không hoàn tiền.
Vai được tra lại từ cơ sở dữ liệu ở từng request, không nướng vào phiên, nên khi thu hồi quyền thì hiệu lực ngay ở lần bấm tiếp theo — và phiên của người đã bị thu hồi quyền bị tự huỷ.
Thao tác tiền có hai lớp chặn thêm: trần số tiền theo từng vai, và bắt buộc nhập lý do bằng văn bản với 13 loại quyền nhạy cảm. Xác thực hai yếu tố là bắt buộc với thao tác tiền vượt ngưỡng — nhân sự chưa bật thì bị từ chối thẳng — nhưng chưa bắt buộc với mọi nhân sự, hiện là tự chọn. Chưa có danh sách IP cho phép đối với console vận hành.
Mọi hành động thay đổi dữ liệu của nhân sự vận hành đều được ghi vết, trong cùng một giao dịch cơ sở dữ liệu với chính thay đổi đó. Hệ quả: không thể có một thay đổi đã ghi mà không có vết, cũng không thể có vết của một thay đổi đã bị hoàn tác. Hành động thất bại và hành động bị từ chối vì thiếu quyền cũng được ghi.
Nội dung mỗi vết: người thực hiện, hành động, đối tượng, lý do, IP, thông tin trình duyệt, ảnh chụp trạng thái trước và sau, mã tương quan, và kết quả.
Chỉ ghi thêm, và điều này được cơ sở dữ liệu thực thi, không phải quy ước: một cơ chế ở tầng cơ sở dữ liệu chặn mọi lệnh sửa và xoá trên bảng nhật ký — sửa một bút toán sai phải bằng cách ghi thêm một bút toán bù. Email của người thực hiện được lưu phi chuẩn hoá có chủ đích, để một nhân sự bị xoá tài khoản không xoá được lịch sử của chính mình.
Giới hạn trung thực: cơ chế này chặn sửa đổi thông thường và sửa đổi do sơ suất, không chặn một người có toàn quyền cơ sở dữ liệu.
Việc che được thực hiện ở tầng dịch vụ, không phải tầng giao diện — nghĩa là dữ liệu bị che không có trong dữ liệu trả về, không phải chỉ bị ẩn khi hiển thị.
| Loại | Cách che |
|---|---|
| giữ ký tự đầu, ký tự cuối và tên miền | |
| Địa chỉ IP | IPv4 giữ đến nhóm thứ ba; IPv6 giữ hai nhóm đầu |
| Thông tin trình duyệt | thu về tên sản phẩm |
| Đoạn trích nội dung bị kiểm duyệt | chỉ còn độ dài, không còn nội dung |
Việc gỡ che yêu cầu một quyền riêng biệt mà chỉ 4 trong 6 vai có.
Bốn lỗ hổng che đã xác định và đang được xử lý — công bố vì che một nửa còn tệ hơn không che, do nó tạo cảm giác an toàn sai: bề mặt đọc nhật ký kiểm tra trả ảnh chụp trạng thái không che; bảng tổng quan console nhúng nhật ký gần nhất mà không kiểm tra quyền đọc dữ liệu cá nhân; tên hiển thị không được che ở bất kỳ đâu; và đoạn trích nội dung bị kiểm duyệt cũng được ghi vào bề mặt cảnh báo vận hành, nơi không có lớp che nào.
Có giới hạn tần suất trên: đăng nhập (theo IP và theo email), đăng ký, quên mật khẩu, đổi mật khẩu, gửi lại email xác minh, luồng kết nối thiết bị, đổi mã giảm giá, gửi phiếu hỗ trợ, mọi tuyến quản trị, và trên chính lưu lượng API.
Bộ đếm nằm ở bộ nhớ đệm chia sẻ với thao tác nguyên tử. Khi bộ nhớ đệm không dùng được, hệ thống chuyển sang bộ đếm trong tiến trình thay vì bỏ chặn — suy giảm về cục bộ, không mở cổng.
Con số cụ thể của hạn mức theo gói ở Điều khoản API. Ngưỡng phát hiện lạm dụng không được công bố. Kiểm duyệt nội dung chạy hoàn toàn trong tiến trình, không gửi nội dung của bạn ra ngoài để phân tích.
Hai điểm thiếu, ghi trung thực: chưa có chặn theo IP, chưa có danh sách đen, chưa có hạn chế theo quốc gia — không có bảng, không có mã, không có cấu hình nào cho việc này. Và tuyến tiêu thụ token đặt lại mật khẩu chưa có giới hạn tần suất; token dài 256 bit nên dò tìm không phải rủi ro thực tế, nhưng đây là một cổng không giới hạn.
| Biện pháp | Trạng thái |
|---|---|
| TLS tới cơ sở dữ liệu, kèm xác thực chứng chỉ | Hỗ trợ, cấu hình được |
| Cách ly dữ liệu giữa các khách hàng | Có — ép trong câu truy vấn, không phải kiểm tra sau khi đọc; nên một mã định danh đoán được của tổ chức khác trả về “không tìm thấy” chứ không xác nhận sự tồn tại |
| Điểm cuối nội bộ | yêu cầu bí mật riêng, so sánh thời gian hằng số, đóng cổng ở môi trường thật khi bí mật chưa đặt |
| Bản sao dữ liệu production trong thư mục làm việc | ĐÃ XOÁ — 29/08/2026, không còn bản sao nào trong cây mã nguồn |
| Sao lưu tự động | CHƯA CÓ trên hạ tầng mới — đã ghi nhận |
| Kiểm chứng khả năng phục hồi | CHƯA THỰC HIỆN |
| Mã hoá bản sao lưu | CHƯA CÓ |
| Nội dung dữ liệu lưu ở Việt Nam | CHƯA XÁC ĐỊNH — hạ tầng chưa chốt |
Ba dòng về sao lưu là thiếu sót nghiêm trọng và TexAPI không che chúng. Hệ quả với bạn: hãy tự lưu bản sao dữ liệu quan trọng của bạn — đừng coi TexAPI là nơi lưu trữ duy nhất cho bất cứ thứ gì bạn không thể mất.
| Loại sự cố | TexAPI làm gì | Trong bao lâu |
|---|---|---|
| Nghi ngờ lộ dữ liệu cá nhân | điều tra, khoanh vùng, đánh giá phạm vi | bắt đầu trong 24 giờ kể từ khi biết |
| Xác nhận có lộ dữ liệu cá nhân | thông báo cơ quan có thẩm quyền | theo thời hạn pháp luật quy định |
| Xác nhận có lộ dữ liệu cá nhân | thông báo cho người bị ảnh hưởng, kèm dữ liệu nào, việc gì đã làm, bạn nên làm gì | không quá 72 giờ kể từ khi xác nhận |
| Lộ thông tin đăng nhập | thu hồi ngay, buộc đặt lại | ngay lập tức |
| Sự cố ảnh hưởng dịch vụ | công bố trạng thái | theo Mức độ dịch vụ mục 2.3 |
TexAPI cam kết không che sự cố có ảnh hưởng tới bạn, kể cả khi nguyên nhân là sơ suất của TexAPI.
TexAPI hoan nghênh báo cáo lỗ hổng và không thực hiện hành động pháp lý đối với người nghiên cứu tuân thủ các nguyên tắc dưới đây.
Gửi tới: support@texapi.dev với tiêu đề bắt đầu bằng [SECURITY].
Cam kết của TexAPI: xác nhận đã nhận trong 03 ngày làm việc; đánh giá ban đầu trong 10 ngày làm việc; thông báo khi đã khắc phục; ghi nhận công khai nếu bạn muốn.
Được phép: kiểm thử trên tài khoản của chính bạn; đọc dữ liệu của chính bạn; báo cáo lỗi logic, lỗi phân quyền, lỗi xác thực, lỗi tính tiền.
Không được phép: truy cập dữ liệu của người khác — nếu vô tình truy cập, hãy dừng ngay, báo cáo, và không lưu lại; tấn công từ chối dịch vụ hay kiểm thử tải; kiểm thử tự động gây ảnh hưởng dịch vụ; tấn công kỹ nghệ xã hội nhắm vào nhân sự TexAPI; kiểm thử vật lý; công bố lỗ hổng trước khi TexAPI khắc phục hoặc trước 90 ngày.
TexAPI hiện không có chương trình thưởng bằng tiền.
Bảo mật là chia đôi. TexAPI không thể bảo vệ bạn khỏi những việc sau:
Danh sách này công khai vì công bố một khoảng trống có thời hạn đáng tin hơn là im lặng.
| Việc | Mức ưu tiên |
|---|---|
| Sửa 4 lỗ hổng che dữ liệu ở console vận hành | Trước khi mở bán |
| Sao lưu tự động, mã hoá, có kiểm chứng phục hồi | Trước khi mở bán |
| Đặt thời hạn lưu cho các bảng còn thiếu | Trước khi mở bán |
| Thêm chính sách nguồn nội dung (CSP) | Nên làm |
| Bắt buộc xác thực hai yếu tố cho toàn bộ nhân sự vận hành | Nên làm |
| Xác thực hai yếu tố cho khách hàng | Nên làm |
| Lưu 4 ký tự cuối của khoá API để nhận dạng được khoá bị lộ | Nên làm |
| Luân chuyển token phiên và hết hạn do không hoạt động | Nên làm |
| Đường luân chuyển khoá mã hoá bí mật | Nên làm |
| Danh sách IP cho phép với console vận hành | Nên có |
Tiến độ được cập nhật vào tài liệu này khi hoàn thành.