Hướng dẫn triển khai bảo mật thực tiễn
Người dùng thường nhập dữ liệu nhạy cảm trên các website, chẳng hạn tên, địa chỉ, mật khẩu và thông tin ngân hàng. Với tư cách là nhà phát triển web, điều quan trọng là phải bảo vệ thông tin này khỏi các tác nhân xấu, những kẻ dùng nhiều loại khai thác để đánh cắp thông tin như vậy và sử dụng nó cho lợi ích cá nhân. Trọng tâm của bảo mật web là giúp bạn bảo vệ website của mình khỏi các khai thác này và bảo vệ dữ liệu nhạy cảm của người dùng.
Trang này liệt kê các hướng dẫn tóm tắt một số thực hành tốt nhất để triển khai các tính năng bảo mật trên website. Mặc dù những hướng dẫn này không bao quát mọi tình huống bảo mật có thể xảy ra và không thể đảm bảo website của bạn an toàn hoàn toàn, việc làm theo thông tin và thực hành tốt nhất trong các hướng dẫn này sẽ giúp các site của bạn an toàn hơn đáng kể.
Nền tảng bảo mật HTTP
Các hướng dẫn trong phần này tóm tắt những thực hành tốt nhất để triển khai đúng các HTTP header nhằm giảm thiểu các vấn đề bảo mật, và liên quan trực tiếp đến công cụ HTTP Observatory.
Observatory thực hiện kiểm toán bảo mật trên một website và cung cấp điểm xếp hạng cùng với các đề xuất để sửa các vấn đề bảo mật mà nó tìm thấy. Những hướng dẫn này giải thích cách giải quyết các vấn đề được bộc lộ qua các bài kiểm tra của HTTP Observatory: công cụ này liên kết đến hướng dẫn phù hợp cho từng vấn đề, giúp bạn đi tới một giải pháp hiệu quả. Điều thú vị là các nhóm phát triển nội bộ của Mozilla cũng dùng chỉ dẫn này khi triển khai website để bảo đảm các thực hành bảo mật tốt nhất được áp dụng.
Các hướng dẫn trong bảng bên dưới được liệt kê theo thứ tự chúng tôi khuyến nghị triển khai các tính năng bảo mật mà chúng mô tả. Thứ tự này dựa trên sự kết hợp giữa tác động bảo mật của từng tính năng và mức độ dễ triển khai của nó từ cả góc độ vận hành lẫn phát triển. Bảng cung cấp thông tin về tác động của từng tính năng, độ khó triển khai, việc nó có bắt buộc hay không, và mô tả ngắn gọn.
| Hướng dẫn | Tác động | Độ khó | Bắt buộc | Mô tả |
|---|---|---|---|---|
| Cấu hình TLS | Trung bình | Trung bình | Có | Dùng cấu hình Bảo mật tầng truyền tải (TLS) an toàn nhất hiện có cho người dùng của bạn. |
| TLS: Tải tài nguyên | Tối đa | Thấp | Có | Tải cả tài nguyên thụ động lẫn chủ động qua HTTPS. |
| TLS: Chuyển hướng HTTP | Tối đa | Thấp | Có | Website phải chuyển hướng sang HTTPS; các điểm cuối API nên vô hiệu hóa hoàn toàn HTTP. |
| TLS: Triển khai HSTS | Cao | Thấp | Có | Thông báo cho user agent kết nối tới site chỉ qua HTTPS, ngay cả khi scheme ban đầu được chọn là HTTP, bằng HTTP Strict Transport Security (HSTS). |
| Ngăn chặn clickjacking | Cao | Thấp | Có | Kiểm soát cách site của bạn có thể được nhúng trong một <iframe> để ngăn clickjacking. |
| Ngăn chặn CSRF | Cao | Không rõ | Tùy | Bảo vệ trước các cuộc tấn công Cross-site request forgery (CSRF). |
| Cấu hình cookie an toàn | Cao | Trung bình | Có | Đặt tất cả cookie ở mức hạn chế nhất có thể. |
| Triển khai CORP | Cao | Trung bình | Có | Bảo vệ khỏi các cuộc tấn công kênh phụ suy đoán bằng Cross-Origin Resource Policy (CORP). |
| Xác minh loại MIME | Thấp | Thấp | Không | Xác minh rằng tất cả website của bạn đang đặt đúng loại MIME cho mọi tài nguyên. |
| Triển khai CSP | Cao | Cao | Có | Cung cấp khả năng kiểm soát chi tiết đối với mã có thể được tải trên site và những gì nó được phép làm bằng Content Security Policy (CSP), từ đó giảm thiểu lỗ hổng Cross-site scripting (XSS). |
| Cấu hình CORS | Cao | Thấp | Có | Xác định các origin không cùng site được phép truy cập nội dung của các trang và tải tài nguyên từ đó bằng Cross-Origin Resource Sharing (CORS). |
| Cấu hình referrer policy | Thấp | Thấp | Có | Cải thiện quyền riêng tư cho người dùng và ngăn rò rỉ URL nội bộ qua header Referer. |
| Cấu hình robots.txt | Thấp | Thấp | Không | Cho các robot (chẳng hạn bộ lập chỉ mục công cụ tìm kiếm) biết cách hành xử bằng cách yêu cầu chúng không thu thập dữ liệu một số đường dẫn nhất định trên website. |
| Triển khai SRI | Thấp | Thấp | Không | Xác minh rằng các tài nguyên được tải về, chẳng hạn từ CDN, được phân phối mà không có sửa đổi bất ngờ bằng Subresource Integrity (SRI). |
Bảo mật thông tin người dùng
- Cách tắt tự động hoàn thành biểu mẫu
-
Các trường biểu mẫu hỗ trợ tự động hoàn thành; tức là, giá trị của chúng có thể được ghi nhớ và tự động điền vào lần tiếp theo người dùng ghé thăm site của bạn. Với một số loại dữ liệu nhất định, bạn có thể muốn tắt tính năng này; bài viết này giải thích cách làm.