Bảo mật HTTP Response Header cho website khi sử dụng CyberPanel

Đánh giá bài viết!
[5/5 - (1 Votes)]

Set Custom/Extra Headers với máy chủ OpenLiteSpeed sử dụng bảng điều khiển CyberPanel khá hữu ích để nâng cao tính bảo mật cho website của bạn.

HTTP headers được web client và web server sử dụng để chia sẻ thông tin như một phần của giao thức HTTP. Khi người dùng truy cập một website thông qua trình duyệt, trình duyệt sẽ gửi một HTTP request chứa client headers, server sẽ phản hồi với HTTP response chứa các server headers. Các headers này cung cấp cho trình duyệt cách giao tiếp với website.

Headers chủ yếu bao gồm metadata. Metadata được xử lý độc quyền bởi trình duyệt web và đã được đưa vào giao thức HTTP kể từ phiên bản 1.0

HTTP Security Headers là các HTTP response headers xác định các biện pháp bảo mật nên được kích hoạt hay vô hiệu hóa trên trình duyệt web.

HTTP Security Headers là một phần cơ bản của , giúp chống lại các cuộc tấn công mà website có nguy cơ gặp phải cao như: MIME types, clickjacking, code injection, XSS…

Trong bài viết này, mình hướng dẫn những ai sử dụng nhanh chóng Custom/Extra Headers để đạt điểm A+ khi check với công cụ

Một số tùy chỉnh HTTP Security Headers để nâng cao bảo mật cho website gồm

Cache-Control: public, max-age=15552000
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=15552000; includeSubDomains; preload;
Content-Security-Policy: “upgrade-insecure-requests;connect-src *”
Permissions-Policy: geolocation=(self “https://thuthuat.vip”)

Tùy chỉnh bảo mật HTTP Security Headers trên Cyberpanel

Để tùy chỉnh HTTP Security Headers bạn có thể làm theo vài bước dưới đây

1. Đăng nhập vào CyberPanel
2. Truy cập vào List websites

3. Click vào Manage

4. Tiếp theo Click vào vHost Configuration

5. Khi click vào vhost conf thì bạn nhấn Ctr+F tìm với từ khóa context / {

Phần HTTP Response Header sẽ nằm bên trong đoạn sau

context / {
extraHeaders Access-Control-Allow-Origin *
}

Bây giờ bạn có thể copy nguyên đoạn code dưới đây dán vào giữa thẻ bên trên

Cache-Control: public, max-age=15552000
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1;mode=block
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=15552000; includeSubDomains; preload;
Content-Security-Policy: “upgrade-insecure-requests;connect-src *”
Permissions-Policy: geolocation=(self “https://thuthuat.vip”)

Nhớ thay tên miền https://thuthuat.vip thành tên miền của bạn nhé!

VD full thẻ context / {

context / {

location /home/$VH_NAME/public_html
allowBrowse 1
extraHeaders <<<END_extraHeaders
Header Operations
X-XSS-Protection 1;mode=block
X-Frame-Options SAMEORIGIN
Referrer-Policy strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
Content-Security-Policy: "upgrade-insecure-requests;connect-src *"
Permissions-Policy: geolocation=(self "https://thuthuat.vip")
Header always set Feature-Policy accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'
END_extraHeaders

rewrite {
enable 1
autoLoadHtaccess 1
}
addDefaultCharset off
phpIniOverride {
}
}

Sau khi tùy chỉnh xong hãy nhận Save để lưu file vhost conf lại

Sau khi lưu file Vhost conf bạn có thể vào https://securityheaders.com/ để kiểm tra kết quả.

Cùng tìm hiểu thêm tiêu đề bảo mật sẽ cung cấp cho website một số bảo vệ rất cần thiết.

1. HTTP Strict Transport Security (HSTS)

Như tên cho thấy, HSTS là một cơ chế buộc các trình duyệt sử dụng kết nối web an toàn.

Nếu một trang web được trang bị HSTS, sever sẽ buộc trình duyệt giao tiếp qua HTTPS (HTTP Secure), đảm bảo tất cả thông tin từ trình duyệt được gửi qua HTTPS. Điều này ngăn chặn chuyển hướng request từ HTTP đến HTTPS.

Trước khi cấu hình header này, cần đảm bảo tất cả website có thể truy cập được qua HTTPS nếu không chúng sẽ bị chặn.

HSTS header được hỗ trợ trên tất cả các phiên bản mới nhất của trình duyệt như IE, Firefox, Opera, Safari và Chrome.

Có ba tham số cấu hình như sau:

  • Max-age: Thời lượng (Tính bằng giây) để xác định thời gian được truy cập server chỉ thông qua HTTPS. Giá trị mặc định là 31536000 giây (1 năm). Đây là độ tuổi tối đa mà HSTS hợp lệ. Server cập nhật chúng với mọi response mới, do đó ngăn không cho nó hết hạn.

  • IncludeSubDomains: Cấu hình subdomains, kiểm soát các subdomains của website.

  • Preload: Sử dụng nếu bạn muốn domain được đưa vào danh sách preload. Danh sách preload là các website được hardcoded vào trình duyệt Google Chrome, chỉ có thể giao tiếp qua HTTPS. Chủ sở hữu trang web có thể gửi URL của chúng để được đưa vào danh sách preload. Danh sách này được duy trì bởi Google nhưng các trình duyệt khác cũng sử dụng nó. Danh sách preload có thể được tìm thấy ở .

Nguy cơ tấn công: Nếu không kích hoạt HSTS, khi nạn nhân kết nối với Wi-Fi mở nằm trong sự kiểm soát của kẻ tấn công, sau đó truy cập một website qua HTTP sẽ cho phép kẻ tấn công chặn request và đọc thông tin gửi lên server. Nếu người dùng đã truy cập website trước đó, các HSTS headers được lưu trong trình duyệt tự động kết nối server qua HTTPS.

2. Content Security Policy (CSP)

CSP cung cấp cho quản trị viên kiểm soát website bằng cách hạn chế tài nguyên mà người dùng được phép tải trong website. Có thể đưa whitelist vào nội dung của website. Nếu được triển khai đúng cách, header này sẽ ngăn chặn việc khai thác Cross-Site Scripting (XSS) , ClickJacking và HTML… Mặc dù không loại bỏ hoàn toàn các khả năng tấn công này, nhưng chắc chắn giảm thiểu thiệt hại. Hầu hết các trình duyệt chính đều hỗ trợ CSP.

Được giới thiệu vào tháng 11 năm 2012, CSP thêm một lớp bảo mật chống lại nhiều lỗ hổng bảo mật website. CSP sẽ trở thành công cụ quan trọng nhất cho bảo mật phía máy khách trong tương lai gần, vì nó có thể thay thế cho các tiêu đề bảo mật như: X-Frame-Options, X-XSS-Protection, là 2 cấu hình không được bật theo mặc định.

Tất cả các trình duyệt không hỗ trợ CSP, vì vậy cần xác minh trước khi triển khai.

Có nhiều tham số có thể thực hiện CSP. Tuy nhiên, chúng ta hãy xem 2 tham số được sử dụng nhiều nhất:

  • default-src: Tải mọi thứ từ một nguồn xác định.

  • script-src: Chỉ tải các tập lệnh từ nguồn được xác định.

3. Cross Site Scripting Protection (X-XSS)

X-XSS header bảo vệ chống lại các cuộc tấn công Cross-Site Scripting (XSS). Bộ lọc này nhằm phát hiện đầu vào HTML nguy hiểm và ngăn website tải hoặc xóa các tập lệnh độc hại.

X-XSS được bật trong Chrome, IE và Safari theo mặc định, nó có 4 chế độ:

  • 0: Bộ lọc XSS bị vô hiệu hóa.

  • 1: Bộ lọc XSS được kích hoạt và bảo vệ trang nếu phát hiện tấn công.

  • 1;mode=block: Bộ lọc XSS được kích hoạt và ngăn chặn hiển thị trang nếu phát hiện tấn công.

  • 1;report=https://viblo.asia: Bộ lọc XSS được kích hoạt và báo cáo vi phạm nếu phát hiện cuộc tấn công.

4. X-Frame-Options

Một kỹ thuật giả mạo có tên là “Clickjacking” khá phổ biến. Trong kỹ thuật này, kẻ tấn công đánh lừa người dùng nhấp vào thứ gì đó không có ở website. Khi người dùng đang ở trên trang web chính thức, nhưng một luôn có một hành động đang chạy trong nền. Trong quá trình này, có thể những thông tin của người dùng đang bị đánh cắp. X-Frame-Options giúp bảo vệ chống lại hình thức tấn công kiểu này bằng cách vô hiệu hóa các iframe có trên website. Nói cách khác, nó không cho phép người khác nhúng nội dung của website.

Có 3 tùy chọn cho X-FrameOptions:

  • SAMEORIGIN: Iframe trong website chỉ được phép từ cùng một nguồn gốc.

  • DENY: Ngăn chặn bất kỳ tên miền nào nhúng nội dung vào website bằng cách sử dụng iframe.

  • ALLOW-FROM: Chỉ cho phép iframe trên URI cụ thể.

Nguy cơ tấn công: Kẻ tấn công thể lừa người dùng truy cập một website độc hại, một iframe vô hình được cài sẵn. Khi người dùng nhấp vào iframe, các các thông tin bị đánh cắp và được gửi đến server khác. Do đó, người dùng sẽ nhấp vào các tùy chọn trái phép, dẫn đến việc thực hiện một số hành động không mong muốn như: Xóa tài khoản…

5. X-Content-Type-Options

X-Content-Type header cung cấp biện pháp ngăn chặn rủi ro bảo mật loại MIME. Nó hướng dẫn trình duyệt theo các loại MIME được chỉ định trong tiêu đề. Nếu Nếu header này trống hoặc bị thiếu, trình duyệt phân tích nội dung và hiển thị theo cách phù hợp nhất.

X-Content-Type hoạt động như sau:

(1) Trình duyệt web request một tập tin. Server sẽ response một tệp với X-Content-Type header.

(2) Trình duyệt phân tích tệp này xác định định dạng tệp.

(3) Sau khi thực hiện phân tích, trình duyệt sẽ so sánh kết quả với kết quả được gửi bởi máy chủ. Nếu có sự không phù hợp, trình duyệt sẽ sử dụng định dạng đã xác định.

=> Điều này có thể dẫn đến một lỗ hổng bảo mật. Để ngăn trình duyệt phân tích nội dung của trang và quyết định sử dụng loại MIME nào, hãy sử dụng tiêu đề X-Content-Type-Options với chỉ thị nosniff

Nguy cơ tấn công: Website cho phép người dùng tải lên một tệp hình ảnh và xác nhận phần mở rộng của nó. Người dùng tải lên một tệp hình ảnh với phần mở rộng jpg hoặc png nhưng tệp này có chứa mã HTML độc hại. Trình duyệt sẽ xác định tệp là HTML và thực thi trong trình duyệt.

Header này dành riêng cho trình duyệt IE và Chrome.

Một số thông tin tham khảo tại

viblo.asia
geekflare.com
netsparker.com

Đánh giá bài viết!
[5/5 - (1 Votes)]