Tài liệu & Hướng dẫn chuyên sâu: Trình tạo Content Security Policy (CSP Builder)
1. Tổng quan & Nguyên lý hoạt động
Content Security Policy (CSP) là lớp phòng thủ bảo mật HTTP tiêu chuẩn hàng đầu, cho phép chủ website quy định chính xác những tài nguyên nào (JavaScript, CSS, hình ảnh, iframe, kết nối API) được phép tải và thực thi trên trình duyệt của người dùng. Thiếu vắng CSP hoặc cấu hình sai cú pháp khiến website dễ bị tấn công Cross-Site Scripting (XSS), chèn mã độc lén lút, và Clickjacking. Đặc biệt với các website đăng ký hoặc đang phân phối Google AdSense, việc áp dụng CSP chuẩn xác giúp bảo vệ trang web khỏi các tiện ích mở rộng chèn quảng cáo lậu (ad injection), ngăn chặn click fraud và đáp ứng tiêu chuẩn an toàn kỹ thuật của Google. Công cụ 'CSP Builder' của Verdbench cung cấp giao diện trực quan, kiểm tra cú pháp và sinh code sẵn sàng cho Next.js (headers/middleware), Nginx và thẻ HTML <meta>.
2. Ưu thế kiến trúc & Tính năng nổi bật
Dễ dàng bật tắt các từ khóa chuẩn như 'self', 'none', 'unsafe-inline' và thêm domain tùy chỉnh dạng tag chip trực quan mà không cần nhớ cú pháp dấu chấm phẩy phức tạp.
Sinh ngay lập tức Header HTTP thô, cấu hình Next.js Config (next.config.js), Next.js Middleware, khối cấu hình Nginx hoặc thẻ HTML <meta> chỉ với một cú nhấp chuột.
Tự động chấm điểm chính sách từ A+ đến F dựa trên chuẩn OWASP, cảnh báo các cấu hình rủi ro như 'unsafe-eval', wildcard '*' hoặc thiếu chỉ thị dự phòng default-src.
3. Bảng chỉ thị Content Security Policy (CSP Directives Reference)
Bảng tổng hợp mục đích kiểm soát và khuyến nghị an toàn cho các chỉ thị CSP cốt lõi:
| Chỉ thị CSP | Mục đích kiểm soát | Khuyến nghị an toàn |
|---|---|---|
| default-src | Chính sách dự phòng cho tất cả các loại tài nguyên fetch | Đặt là 'self' để chặn mọi nguồn lạ ngoài domain |
| script-src | Kiểm soát các nguồn được phép thực thi JavaScript | Giới hạn domain tin cậy, tránh dùng 'unsafe-eval' |
| style-src | Kiểm soát nguồn nạp CSS stylesheets và thẻ inline style | 'self' kết hợp 'unsafe-inline' (cần cho Tailwind/CSS-in-JS) |
| img-src | Quy định nguồn tải hình ảnh, SVG và icon | 'self' data: https: (hỗ trợ ảnh CDN và avatar base64) |
| connect-src | Giới hạn endpoint cho fetch(), XHR và WebSocket | 'self' cùng các domain API bên thứ 3 xác định |
| font-src | Quy định nguồn nạp phông chữ @font-face | 'self' https: data: (hỗ trợ Google Fonts / Typekit) |
| frame-src | Các trang web được phép nhúng qua thẻ <iframe> | Khai báo cụ thể (ví dụ: Google Ads, YouTube, Stripe) |
| frame-ancestors | Trang web nào ĐƯỢC PHÉP nhúng website này (Chống Clickjacking) | 'none' (chống lừa đảo clickjacking triệt để) |
| object-src | Plugin cũ (Flash, Java Applet, ActiveX) | Luôn đặt là 'none' để triệt tiêu lỗ hổng thực thi mã |
| base-uri | Hạn chế địa chỉ URL trong thẻ <base> | Đặt là 'self' để ngăn kẻ tấn công đổi base URL |
4. Câu hỏi thường gặp (FAQ)
Giải đáp các thắc mắc phổ biến của lập trình viên khi sử dụng tiện ích Trình tạo Content Security Policy (CSP Builder).
5. Công cụ liên quan
- Tra cứu HTTP Status & HeaderTra cứu nhanh ý nghĩa mã trạng thái HTTP và các header thường gặp, có ví dụ và sao chép một chạm.
- Kiểm toán bảo mật JWT & Chữ ký sốKiểm toán cấu hình JSON Web Token phòng thủ, phát hiện lỗ hổng alg: none, kiểm tra hạn dùng, rò rỉ dữ liệu và xác thực chữ ký HMAC-SHA256 với Web Crypto API.
- Trình xem trước Open Graph & SEONhập metadata, xem ngay link hiển thị trên Google, Facebook, Twitter và lấy sẵn code Next.js Metadata.