Baseline quản trị web tại Việt Nam
NKLattice là gate kỹ thuật trước phát hành cho các app Next.js, Vite + React và React đã khai báo trong inventory. Báo cáo quản trị dự án ghi policy, commit đầu vào, phiên bản scanner, bằng chứng và kết quả của từng miền bắt buộc. Phiên bản 0.5.0 chạy tám miền; bản 0.4.0 có bảy miền trước khi bổ sung accessibility và danh mục thư viện React có điều kiện. Kết quả pass nghĩa là các gate kỹ thuật đã cấu hình đạt trên đúng app và commit được quét. Nó không chứng nhận toàn bộ hệ thống thông tin hay hoạt động của doanh nghiệp.
Các kiểm soát đang chạy
Phần tiêu đề “Các kiểm soát đang chạy”| Phạm vi quyết định | Bằng chứng trong phiên bản 0.5.0 | Gate mặc định |
|---|---|---|
| Phạm vi app và policy dependency | Inventory chính xác; range manifest, import mã nguồn và importer lockfile npm/pnpm | Mọi app được phát hiện phải khai báo; range được phép và phiên bản khóa đạt ngưỡng đã duyệt. |
| Kiến trúc | Đồ thị import JS/TS nội bộ, finding và điểm | Điểm ít nhất 75; không có finding error hoặc vòng module. |
| Bảo mật dependency | npm/pnpm audit trên lockfile | Không có advisory high hoặc critical đã biết. Audit workspace pnpm được báo là bằng chứng mức workspace. |
| Chất lượng mã | ESLint, TypeScript, Vitest và độ phủ dòng V8 | Không có lỗi lint; typecheck và test bắt buộc đạt; độ phủ dòng ít nhất 70%. |
| Bảo mật mã | Semgrep p/ci và Gitleaks |
Không có finding SAST high/critical hoặc secret được phát hiện. |
| Khả năng tiếp cận | axe-core qua Playwright trên route được test | Có scan với tag WCAG 2.1 A/AA trên Chromium desktop và Android Chrome mô phỏng; không có vi phạm hoặc mục chưa kết luận. |
| Trình duyệt và mobile | Playwright trên Chromium, Firefox, WebKit, Android Chrome và iPhone Safari mô phỏng | Cả năm project đạt, mỗi project ít nhất hai test ở hai chiều rộng viewport. Phiên bản engine đo được và phiên bản OS trong user agent mobile đạt ngưỡng môi trường kiểm thử đã duyệt. |
Bằng chứng bắt buộc bị thiếu, quá hạn hoặc sai định dạng cho incomplete; vi phạm đã đo cho fail. Điểm kiến trúc cao không che được finding bảo mật. Policy trung tâm giữ các ngưỡng để đội ngũ review thay đổi trước khi cập nhật workflow governance đã pin trong từng repo.
Liên hệ với văn bản tại Việt Nam
Phần tiêu đề “Liên hệ với văn bản tại Việt Nam”| Văn bản | Phạm vi liên quan | NKLattice chứng minh được gì |
|---|---|---|
| TCVN 11930:2017 và Thông tư 12/2022/TT-BTTTT | An toàn hệ thống thông tin theo cấp độ | Report cung cấp một phần bằng chứng về mã và dependency. Phân loại hệ thống, kiểm soát tổ chức, hạ tầng, vận hành và đánh giá chính thức nằm ngoài CLI. |
| Thông tư 26/2020/TT-BTTTT | Tiêu chuẩn tiếp cận cho một số trang thông tin và dịch vụ công; khuyến khích các tổ chức khác áp dụng | NKLattice có gate axe tự động theo WCAG 2.1 A/AA trên các route đã test. Mỗi tổ chức vẫn phải xác định quy định áp dụng và review khả năng tiếp cận bằng người. |
Các ngưỡng mặc định là baseline sản phẩm dành cho đội web phục vụ thị trường Việt Nam; chúng không phải ngưỡng do các văn bản trên đặt ra. Không nên diễn giải report xanh thành kết luận tuân thủ pháp luật hoặc chứng nhận an toàn thông tin.
Công cụ đã đánh giá để tích hợp tiếp
Phần tiêu đề “Công cụ đã đánh giá để tích hợp tiếp”| Nhu cầu | Đang triển khai | Ứng viên và điều kiện áp dụng |
|---|---|---|
| Nguồn advisory bổ sung | npm/pnpm audit | OSV-Scanner có thể bổ sung nguồn sau khi kiểm tra số package được quét và định dạng bằng chứng. Gate hiện tại chưa chạy công cụ này. |
| Accessibility | axe-core cho Playwright là gate tự động trên Chromium desktop và Android Chrome mô phỏng | Các route chưa test và kiểm tra thủ công vẫn ngoài kết luận. Xem hướng dẫn accessibility. |
| Khai báo trình duyệt mục tiêu | Ma trận Playwright đã duyệt | Browserslist có thể ghi phiên bản hỗ trợ để so với project test thật. Chỉ khai báo không chứng minh tính tương thích. |
| Đề xuất cập nhật dependency | Review policy trung tâm và SHA consumer | Renovate có thể tạo PR cập nhật manifest/lockfile. PR vẫn phải qua governance gate và review của người phụ trách. |
| Thiết bị thật | Chưa chạy | BrowserStack Automate trả metadata phiên kiểm thử web gồm thiết bị, phiên bản OS/browser và kết quả. Cần tài khoản và lượt chạy thật; CLI hiện chưa có connector này. |
Các project mobile hiện dùng mô phỏng của Playwright. Policy 5.0.0 giữ ngưỡng phiên bản môi trường kiểm thử qua minimumTestedBrowserVersions và minimumEmulatedOsVersions; report hiển thị cả giá trị đo và ngưỡng. Thấp hơn ngưỡng là fail; thiếu hoặc sai định dạng bằng chứng phiên bản là incomplete. Rule này giúp CI không âm thầm chạy trên browser binary hoặc user agent mobile cũ hơn. Nó không chứng minh hỗ trợ mọi phiên bản trên ngưỡng, thiết bị thật hay một bản Android/iOS cụ thể trên máy thật. Nếu khách hàng yêu cầu thiết bị xác định, quyết định riêng đó vẫn incomplete cho đến khi có bằng chứng chạy trên thiết bị và được review.
Lần đo mẫu và tiêu chí chấp nhận thiết bị thật
Phần tiêu đề “Lần đo mẫu và tiêu chí chấp nhận thiết bị thật”App React độc lập công khai đã tạo ma trận sau trong CI trên main ngày 18/10/2026. Đây là môi trường kiểm thử được ghi nhận cho app mẫu, không phải lời hứa hỗ trợ một phiên bản trình duyệt tối thiểu:
| Project | Browser engine được ghi | Cấu hình mobile |
|---|---|---|
| Chromium desktop | 156.0.8078.4 | Không |
| Firefox desktop | 157.0 | Không |
| WebKit desktop | 27.2 | Không |
| Android Chrome | Chromium 156.0.8078.4 | User agent mô phỏng Android 14 |
| iPhone Safari | WebKit 27.2 | User agent mô phỏng iOS 15.0 |
Mỗi project đạt hai test trên hai chiều rộng viewport. Ma trận này xác minh các project trình duyệt đã cấu hình; nó không chứng minh đã chạy trên thiết bị Android 14 hoặc iOS 15 thật.
Với rule thiết bị thật trong tương lai, NKLattice cần lấy kết quả từ nhà cung cấp dịch vụ kiểm thử thay vì tin chuỗi user agent do app gửi. Hợp đồng bằng chứng phải có ID phiên chạy tại nhà cung cấp, commit được quét, thời gian chạy, model, trạng thái real_mobile, tên/phiên bản OS, browser/phiên bản, số test và kết quả cuối. API build của BrowserStack Automate cung cấp metadata phiên, còn API session cung cấp thêm chi tiết. Adapter còn phải xác minh trạng thái thiết bị thật và số test từ nhà cung cấp hoặc runner, gắn build với commit và phân trang các session: một phản hồi chi tiết build chỉ chứa tối đa 100 session gần đây. Target bắt buộc thiếu phiên chạy khớp và được xác minh sẽ là incomplete; phiên chạy lỗi sẽ là fail. Đây là adapter đề xuất, chưa phải scanner đang chạy hoặc kết luận hiện có của report.