Chào các bạn, hôm nay kỹ thuật sẽ giới thiệu về HTTP Strict Transport Security (HSTS).
- Giới thiệu
HSTS – viết tắt của HTTP Strict Transport Security là một tính năng bảo mật cho phép website, thông báo cho các trình duyệt chỉ nên giao tiếp bằng giao thức HTTPS an toàn thay vì HTTP. Bằng cách thêm một lá cờ (flag) vào phần header mà trình duyệt web nhận được khi gửi yêu cầu tới máy chủ, HSTS đảm bảo rằng tất cả kết nối sau đó tới một web brower được mã hóa bằng giao thức HTTPS và ngăn chặn hacker sử dụng chứng chỉ số không hợp lệ - Hoạt động của HSTS
Đầu tiên cần phải thêm thông tin HSTS response header vào web serverStrict-Transport-Security: max-age=expireTime [; includeSubdomains] [;reload]
Ví dụ:
Strict-Transport-Security: max-age=16070400; includeSubDomains; reload
Tham số tối thiểu là max-age (16070400 = 1 năm), đơn vị tính bằng giây. Quy định thời gian trình duyệt kết nối đến máy chủ bằng cách sử dụng kết nối HTTPS. Tuy nhiên, nó được đề nghị bao gồm các thư mục con để trình duyệt sử dụng kết nối HTTPS cho tên miền phụ hiện tại và tương lai. Khi thời gian max-age hết hạn, những nỗ lực tiếp theo để tải các trang web thông qua HTTP sẽ tiến hành như bình thường thay vì tự động sử dụng HTTPS
- Cấu hình HSTS
Để cấu hình HTTP Strict Transport Security ta làm như sau:
– Đối với máy chủ nginx ta thêm đoạn code sau vào cấu hình tại file nginx.confadd_header Strict-Transport-Security ‘max-age=31536000; includeSubDomains; preload;’ always;
– Đối với máy chủ Apache cấu hình tại Virtual Host trên port 443
<VirtualHost x.x.x.x:443>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</VirtualHost>
– Đối với máy chủ sử dụng Microsoft IIS 7 trở lên, ta cấu hình tại file web.config
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload "/>
</customHeaders>
</httpProtocol>
Chúc các bạn thành công!
Leave A Comment?