Control bảo mật và khắc phục
Ma trận control
Phần tiêu đề “Ma trận control”Registry dưới đây là web-security/1. Tên adapter mô tả cơ chế hỗ trợ, không bảo đảm công cụ đã chạy. Mỗi dòng cần bằng chứng đầy đủ, đúng danh tính và target đã khai báo. Control EVID thuộc phạm vi integrity; các dòng khác thuộc application. Chưa biết khả năng áp dụng không phải lý do tự loại trừ.
| Control ID | Nhóm / phạm vi | Mục đích đã review | Bằng chứng bắt buộc | Cơ chế hỗ trợ | Giới hạn bằng chứng |
|---|---|---|---|---|---|
CSP-01 |
CSP / application | Policy được thực thi trên response | source, runtime | csp-source, http-runtime | Source riêng lẻ không chứng minh header deploy, entropy nonce hay biến thể cache. |
CSP-02 |
CSP / application | Giới hạn script hiệu lực và tổ hợp policy | source, runtime | csp-source, http-runtime | Source riêng lẻ không chứng minh header deploy, entropy nonce hay biến thể cache. |
CSP-03 |
CSP / application | Cấp phép nonce/hash, khớp và bằng chứng tái sử dụng | source, build, runtime | csp-source, production-build, http-runtime | Source riêng lẻ không chứng minh header deploy, entropy nonce hay biến thể cache. |
CSP-04 |
CSP / application | Render mode đã khai báo và liên hệ source/build/runtime | source, build, runtime | render-source, production-build, http-runtime | Source riêng lẻ không chứng minh header deploy, entropy nonce hay biến thể cache. |
CSP-05 |
CSP / application | Giới hạn object và base | source, runtime | csp-source, http-runtime | Source riêng lẻ không chứng minh header deploy, entropy nonce hay biến thể cache. |
CSP-06 |
CSP / application | Nhúng trang và đích gửi form | source, runtime | csp-source, http-runtime | Source riêng lẻ không chứng minh header deploy, entropy nonce hay biến thể cache. |
XSS-01 |
XSS / application | Điểm chèn HTML và luồng dữ liệu có giới hạn | source | html-ast, semgrep | Giới hạn AST/data-flow; luồng động/liên tệp chưa rõ vẫn incomplete. |
XSS-02 |
XSS / application | Danh tính sanitizer đã phân giải và cấu hình | source | html-ast, dependency-resolution | Giới hạn AST/data-flow; luồng động/liên tệp chưa rõ vẫn incomplete. |
XSS-03 |
XSS / application | Script inline và đầu ra JSON có cấu trúc | source, build | html-ast, production-build | Giới hạn AST/data-flow; luồng động/liên tệp chưa rõ vẫn incomplete. |
XSS-04 |
XSS / application | Ranh giới tin cậy HTML client/server | source | html-ast, boundary-source | Giới hạn AST/data-flow; luồng động/liên tệp chưa rõ vẫn incomplete. |
CSRF-01 |
CSRF / application | Auth mode và inventory mutation, gồm candidate GET | source | surface-inventory, request-source | Chỉ target/kịch bản đã review; không bao phủ chung mọi action/route. |
CSRF-02 |
CSRF / application | Bảo vệ origin/token cho mutation dùng cookie | source, behavioral | request-source, request-behavior | Chỉ target/kịch bản đã review; không bao phủ chung mọi action/route. |
CSRF-03 |
CSRF / application | Origin tin cậy, proxy và ranh giới action | source, behavioral | request-source, request-behavior | Chỉ target/kịch bản đã review; không bao phủ chung mọi action/route. |
CSRF-04 |
CSRF / application | Kịch bản mutation hợp lệ và bị từ chối | behavioral | request-behavior | Chỉ target/kịch bản đã review; không bao phủ chung mọi action/route. |
HTTP-01 |
HTTP / application | Header bảo mật quan sát được và ngữ cảnh TLS production | runtime | http-runtime | Đúng phạm vi đã quan sát; cache/session riêng cần fixture ràng buộc. |
HTTP-02 |
HTTP / application | Thuộc tính cookie và vòng đời session | source, runtime, behavioral | request-source, http-runtime, request-behavior | Đúng phạm vi đã quan sát; cache/session riêng cần fixture ràng buộc. |
HTTP-03 |
HTTP / application | Hành vi origin/credential của CORS | source, behavioral | request-source, request-behavior | Đúng phạm vi đã quan sát; cache/session riêng cần fixture ràng buộc. |
HTTP-04 |
HTTP / application | Cách ly cache xác thực, đăng xuất và thu hồi | source, behavioral | request-source, request-behavior | Đúng phạm vi đã quan sát; cache/session riêng cần fixture ràng buộc. |
BOUND-01 |
BOUND / application | Ma trận phân quyền đối tượng/vai trò/tenant phía server | source, behavioral | request-source, authz-behavior | Chỉ feature/persona fixture đã khai báo; chưa rõ khả năng áp dụng là incomplete. |
BOUND-02 |
BOUND / application | Ranh giới secret và source map trong bundle public | source, build | boundary-source, production-build | Chỉ feature/persona fixture đã khai báo; chưa rõ khả năng áp dụng là incomplete. |
BOUND-03 |
BOUND / application | Ranh giới URL đi ra/SSRF và redirect | source, behavioral | boundary-source, outbound-fixture | Chỉ feature/persona fixture đã khai báo; chưa rõ khả năng áp dụng là incomplete. |
BOUND-04 |
BOUND / application | Ranh giới nội dung/kiểu/lưu trữ upload | source, behavioral | boundary-source, upload-fixture | Chỉ feature/persona fixture đã khai báo; chưa rõ khả năng áp dụng là incomplete. |
DEP-01 |
DEP / application | Dependency đã phân giải và advisory đã biết | source | dependency-resolution, advisory-audit | Lockfile hỗ trợ và ngữ cảnh runtime đã xác lập; metadata không chứng minh code an toàn. |
DEP-02 |
DEP / application | Ngữ cảnh phơi lộ build/runtime | build, runtime | production-build, http-runtime | Lockfile hỗ trợ và ngữ cảnh runtime đã xác lập; metadata không chứng minh code an toàn. |
DEP-03 |
DEP / application | Pin workflow, quyền và ngữ cảnh cài đặt | source | workflow-source, dependency-resolution | Lockfile hỗ trợ và ngữ cảnh runtime đã xác lập; metadata không chứng minh code an toàn. |
EVID-01 |
EVID / integrity | Nhất quán danh tính commit/input/build/deployment | source, build, runtime | identity-binding | Kiểm identity/độ đầy đủ/thẩm quyền không chứng nhận scanner thực thi. |
EVID-02 |
EVID / integrity | Receipt nguồn gốc và thẩm quyền phạm vi hẹp | operational | provenance-receipt | Kiểm identity/độ đầy đủ/thẩm quyền không chứng nhận scanner thực thi. |
EVID-03 |
EVID / integrity | Độ đầy đủ scanner và trạng thái chẩn đoán | source | scanner-diagnostics | Kiểm identity/độ đầy đủ/thẩm quyền không chứng nhận scanner thực thi. |
sast:semgrep |
SAST / application | Tổng hợp SAST native; giữ rule ID scanner | source | semgrep | Giữ rule ID scanner native; tool thiếu/chạy dở không chứng minh không finding. |
secrets:gitleaks |
SECRETS / application | Tổng hợp secret native; che giá trị và xoay khóa | source | gitleaks | Phạm vi source hiện tại, finding che giá trị; lịch sử/rotate cần review riêng. |
Render mode, CSP và cache
Phần tiêu đề “Render mode, CSP và cache”| Mode khai báo | Hướng khắc phục | Bằng chứng còn cần |
|---|---|---|
static |
Tách mã thực thi tin cậy thành tệp ngoài hoặc dùng hash tính từ đúng byte đã build; triển khai response policy tương ứng. | Kiểm tra artifact production và response edge thực tế. Có cấu hình trong source chưa chứng minh CDN trả header đó. |
ssr |
Với thiết kế nonce, sinh nonce CSPRNG khó đoán mới cho mỗi response và truyền cùng giá trị vào policy cùng script được phép. | Liên kết cách sinh trong source, build và header/body runtime. Hai mẫu khác nhau hoặc độ dài nonce không chứng minh entropy. |
isr / hybrid |
Review HTML cache và policy như một đơn vị; tránh dùng lại nonce theo request qua shared cache. Chọn hash/static phù hợp hoặc response động rõ ràng. | Xác minh đường cache/deployment thật. Nhãn render trong source hay artifact khớp chưa chứng minh invalidation an toàn. |
unknown |
Review từng route và khai báo mode thực tế. | Giữ incomplete đến khi xác định; không tự suy ra SSR hay cho đạt. |
Collector runtime giới hạn 3 GET gửi thật trên mỗi route, tính cả redirect, đồng thời tối đa 3 redirect cùng origin. Route redirect nhiều có thể hết ngân sách trước khi đủ hai mẫu nonce hoàn chỉnh. Review rồi khai báo route canonical; không tự tăng lưu lượng. Timer 15 giây bao gồm DNS/connect/TLS/body. Origin public được ghim sau khi kiểm tra mọi địa chỉ DNS. HTML runtime giữ cục bộ; chỉ chiếu bằng chứng đã giảm thiểu. Đây là quan sát có giới hạn, không phải khai thác hay flooding.
Bản build SaaS chặn style attribute inline và Wasm trên trình duyệt. Tài liệu Astro tin cậy có ngoại lệ style attribute đã chứng minh cần thiết và quyền Wasm hẹp cho Pagefind. Cả hai tách script thực thi inline ra tệp ngoài. Thiết kế theo owner không phải tuyên bố strict-CSP chung. Mỗi deployment cần xác minh HTTPS/CDN/header production thực tế. Beacon analytics của Cloudflare hiện bị CSP nghiêm ngặt chặn; đây vẫn là giới hạn vận hành đã biết. Tham khảo CSP của Next.js và ngữ nghĩa script policy trên MDN.
Khắc phục HTML và request
Phần tiêu đề “Khắc phục HTML và request”Dùng text rendering của React cho văn bản. Rich HTML cần sanitizer đã phân giải và cấu hình được review ngay trước sink; wrapper riêng, luồng liên tệp hoặc khởi tạo chưa rõ có thể vẫn incomplete. Serialize JSON có cấu trúc an toàn theo đúng ngữ cảnh script. Pattern candidate trong source không phải exploit confirmed; scan tĩnh sạch không bao phủ mọi luồng động. Tài liệu DOM của React giải thích rủi ro HTML không tin cậy.
| Auth mode | Review và bằng chứng hành vi |
|---|---|
cookie / mixed |
Origin/token/session cho CSRF, origin thiếu/null/sibling, các kiểu form đơn giản, proxy tin cậy; cờ cookie, hết hạn/reset/revoke/logout và cách ly cache riêng tư. SameSite là lớp phòng vệ bổ sung. |
bearer |
Xác minh Authorization tường minh và từ chối cookie; allowlist CORS/credential; phân quyền từng đối tượng/tenant. Nhãn bearer chưa chứng minh không có cookie fallback. |
service |
Credential service rõ ràng, đúng caller, từ chối cookie; quyền server và giới hạn URL đi ra. |
none |
Xác nhận route cố ý public, không mutation bằng GET và không lộ dữ liệu tenant. Public không miễn review build, CSP hoặc cache. |
Server Action và route handler cần phạm vi riêng; bảo vệ của adapter này không tự bao phủ adapter kia. Chạy ca từ chối trên fixture cô lập được phép rõ ràng. Fixture cần cả persona được phép và bị từ chối. CORS riêng lẻ không bảo vệ CSRF; tham khảo hướng dẫn CSRF của OWASP.
BOUND cần bằng chứng cách ly object/tenant phía server, secret trong bundle client, URL đi ra và upload nếu có. Xác định ngữ cảnh runtime public/private cho finding dependency; integrity metadata và action pin không chứng minh code an toàn. Giữ riêng ngưỡng >=X.Y.Z, review tương thích và advisory. Secret confirmed cần thu hồi/rotate trước, rồi bỏ khỏi source và review lịch sử còn truy cập được. Finding và phần thiếu bằng chứng hiển thị qua thu thập bằng chứng và độ tin cậy báo cáo.