HỎI ĐÁP

Content Security Policy và cách triển khai trên trang WordPress

csp (content-security-policy) hay cụ thể hơn là tiêu đề Chính sách bảo mật nội dung hiện đang trở nên phổ biến hơn bao giờ hết. Tuy nhiên, hiện tại mình chỉ thấy thế giới di động là một trong những địa chỉ chính ở Việt Nam triển khai csp, còn rất ít địa chỉ khác. Vậy csp là gì và tại sao chúng ta sử dụng nó?

  • Cập nhật ngày 31/01 : Tôi đã thêm một cách để theo dõi các vi phạm csp trên các trang web wordpress và các vấn đề với các thuộc tính nội tuyến không an toàn

Việc triển khai csp thường mất nhiều thời gian vì ít công cụ hỗ trợ nó một cách tự động. Vì vậy, hãy đọc qua trước khi bắt đầu làm việc.

Bạn đang xem: Content-security-policy là gì

csp là gì?

csp là một biện pháp bảo mật dựa trên trình duyệt giúp ngăn chặn các yêu cầu xấu từ trang web của chúng tôi . Csp là một tập hợp các danh sách trắng của các miền hoặc tập lệnh, kiểu, hình ảnh, khung mà trình duyệt tải trên trang web của chúng tôi. Điều này đảm bảo rằng chỉ các tập lệnh, kiểu, hình ảnh và khung mà chúng tôi chỉ định mới được tải và các yêu cầu không có trong danh sách trắng sẽ bị chặn ngay lập tức.

Tiêu đề

csp được trả về trình duyệt từ máy chủ web hoặc mã nguồn, tùy thuộc vào cách chúng tôi thiết lập.

tuan có một bài viết riêng về cách ngăn phần mềm độc hại thực thi, chuyển hướng các trang web wordpress không mong muốn. Chỉ cần một dòng csp. Hãy xem: & gt; Hạn chế phần mềm độc hại chuyển hướng các trang web wordpress bằng csp

Rõ ràng nhất là nếu một tin tặc xâm nhập vào hệ thống của bạn và chèn thẻ & lt; script & gt; dẫn đến một tệp javascript độc hại nằm trên miền của họ, chẳng hạn như xauxa.com/jquery.min.js. Đây là một dạng tấn công lưu trữ xss rất phổ biến mà các trang wordpress thường xuyên gặp phải. Do tiêu đề csp, xauxa.com không được đưa vào danh sách trắng để tải xuống và thực thi, bảo vệ bạn và khách truy cập của bạn.

Giống như ảnh chụp màn hình ở trên, một số trình duyệt liên tục thu thập thông tin người dùng, hoặc người dùng cài đặt tiện ích mở rộng không rõ nguồn gốc dẫn đến việc chèn mã độc, quảng cáo trên các trang web ngay cả khi chủ sở hữu trang web không cố ý. Nhờ csp, người dùng có thể truy cập trang web của chúng tôi với giao diện “sạch sẽ nhất”, do trình duyệt chặn ngay từ đầu.

Một ví dụ thú vị khác là tiện ích con beecost – không thể theo dõi giá trên các trang web sử dụng csp, chẳng hạn như thegioididong.com.

beecost csp thegioididong

Từ đây dẫn tới các ý tưởng chặn các trình duyệt, extension thu thập thông tin và xử lý để tạo lợi thế dựa vào độ phổ biến như trường hợp CocCoc “gợi ý giá”, BeeCost giúp khách hàng biết được lịch sử giá,…

XEM THÊM:  Que test covid c và t là gì

“Chỉ thị” cho csp

Không chỉ ngăn javascript tải, csp còn hoạt động với hình ảnh, css, frame, webfonts, media và nhiều lệnh khác. Điều này tạo ra một lớp bảo mật thích hợp cho trang web, cho phép khách truy cập chỉ tải xuống và sử dụng nội dung bạn muốn.

Đây là các hướng dẫn cho các loại tài nguyên khác nhau và cách sử dụng chúng, hãy tiếp tục đến phần tiếp theo.

các thuộc tính và giá trị chỉ thị csp

Mỗi chỉ thị thêm nhiều trường khác nhau, nhưng có một số cách sử dụng bạn nên biết để có thể sử dụng chúng thoải mái hơn:

Hãy sử dụng bài viết tôi đã trình bày ở đầu trang làm ví dụ để phân tích những nguồn nào mà trình duyệt cho phép tải xuống tài nguyên.

Sau đó, trình duyệt sẽ cho phép tải javascript từ:

  • “self”
  • “không an toàn trong dòng”
  • “không an toàn-eval”
  • www.googletagmanager.com, connect.facebook. Net, …

Làm cách nào để biết chúng tôi đang tải xuống từ miền nào?

Tham khảo: Thả thính bằng tiếng Anh trọn bộ [Nam & Nữ] – Step Up English

Thật vậy. Có vẻ như chúng tôi có thể giữ danh sách các miền mà trang web tải tài nguyên xuống, nhưng danh sách các miền có thể lớn hơn.

Do đó, các trang web được quảng cáo không thể hoặc có quyền truy cập hạn chế vào tiêu đề csp. Đây là lý do tại sao rất ít trang web ở Việt Nam triển khai csp tại thời điểm hiện tại.

Ví dụ: trang web của tôi sử dụng Mã theo dõi Google Ads. Sử dụng không chỉ một tên miền mà sử dụng 2 đến 3 tên miền khác. Vì vậy việc kiểm tra trước khi triển khai là rất quan trọng.

webpagetest google ads domain

Công cụ mình hay sử dụng là WebPageTest.org để lấy tất cả các tên miền mà website mình tải tài nguyên về, từ đó lập danh sách và tiếp tục thử – sai cho đến khi trình duyệt không còn báo một tên miền nào bị chặn bởi CSP nữa.

Cách sử dụng csp trên wordpress

Mặc dù csp nên được triển khai ở phía máy chủ web (apache, nginx, …) vì lý do bảo mật. Tuy nhiên, việc chèn tiêu đề csp vào một trang web wordpress rất đơn giản và có thể được thực hiện theo một số cách.

Xin lưu ý rằng các plugin hoặc đoạn mã chỉ giúp bạn chèn tiêu đề csp vào trang web của mình, nhưng nội dung và giá trị là tùy thuộc vào bạn. Hiện tại, tôi chưa thấy bất kỳ công cụ nào tự động tạo giá trị csp.

Sử dụng plugin

Đầu tiên, cách dễ nhất để bắt đầu mà không cần chạm vào mã là cài đặt trình cắm wp Content Security Plugin . Sau khi cài đặt và kích hoạt plugin, bạn có thể vào Cài đặt> Bắt đầu cấu hình tùy chọn csp cho csp.

wp content security policy

Vì Content Security Policy thật sự là một tính năng mới, không thể cứ click click rồi hoàn thành cài đặt được nên trông phần cấu hình có vẻ hơi rối. Tuy nhiên nếu bạn đã đọc qua phần đầu bài viết rồi thì sẽ cảm thấy ổn thôi, có thể tự tin chuyển qua tab Content Security Policies để cấu hình cho các directive.

XEM THÊM:  Việt nam - lào campuchia gọi là gì

Chèn mã trực tiếp

Nói chung đối với các trang cần kiểm tra nhanh cấu hình của một trang web, tôi sử dụng phương pháp này bằng cách chèn trực tiếp vào tệp functions.php của chủ đề đang được sử dụng. Xấu xí và xấu xí, nhưng rất hiệu quả.

Cấu hình bằng máy chủ web

Đây là phương pháp tôi khuyên dùng để giữ trang web an toàn nhất có thể, ngay cả khi truy cập và chỉnh sửa các tệp mã nguồn của trang web. Tuy nhiên, họ sẽ gặp khó khăn với cấu hình máy chủ, vì vậy tiêu đề csp của chúng tôi vẫn được bảo vệ đầy đủ.

nginx

Chèn tệp /etc/nginx/nginx.conf, đặt khối http và khởi động lại nginx.

Apache

Có thể dễ dàng sử dụng apache hơn, bạn chỉ cần chèn tệp .htaccess (không nên vì hacker có thể can thiệp, nếu không còn cách nào khác, hãy chmod hợp lý trước khi sử dụng), hoặc chèn vào / vv / httpd / conf /httpd.conf. Sau đó khởi động lại apache.

Kiểm tra xem csp đã được thực thi chưa

Có nhiều trang web có thể giúp chúng tôi kiểm tra xem cấu hình csp có hợp lý hay không. Tôi khuyên bạn nên sử dụng công cụ đánh giá csp đi kèm với google phát triển để kiểm tra. Chỉ cần nhập tên miền vào ô bên dưới và nhấp vào kiểm tra csp và tất cả các hướng dẫn sẽ xuất hiện dưới dạng xếp hạng từ google.

csp evaluator check online

Một công cụ khác mà mình hay sử dụng để kiểm tra tổng thể mức độ bảo mật của website dựa vào các response header là Security Headers. Ngoài CSP, họ còn kiểm tra rất nhiều header khác giúp tăng cường bảo mật cho website như X-XSS-Protection giúp bảo vệ người dùng khỏi tấn công XSS, X-Frame-Options bảo vệ website khỏi việc bị nhúng từ một trang khác,…

security header check online

Theo dõi vi phạm CSP

Tham khảo: Kỹ năng ghi nhớ là gì, cách ghi nhớ nhanh và lâu

Một tính năng thực sự thú vị của csp là báo cáo uri , giúp trình duyệt báo cáo vi phạm csp trên trang web của chúng tôi cho chúng tôi, do đó biết rằng tin tặc đang nhắm mục tiêu vào các biểu mẫu. Bất kỳ hình ảnh tấn công tương tự ở đầu bài viết. Từ các báo cáo này, bạn có thể kiểm tra lại mức độ bảo mật của csp hoặc nới lỏng một số miền bảo mật mà bạn chưa đưa vào danh sách cho phép.

Nó rất đơn giản để sử dụng, mỗi khi vi phạm csp xảy ra trên một trang, trình duyệt sẽ gửi thông tin vi phạm này đến một dịch vụ được xác định trước để chúng tôi có thể theo dõi lại. Một trong những dịch vụ miễn phí giúp chúng tôi theo dõi vi phạm csp là https://report-uri.com. Phiên bản miễn phí chỉ hỗ trợ 10.000 báo cáo mỗi tháng, nhưng theo tôi, như vậy là quá đủ.

XEM THÊM:  Cộng đồng LGBT - Thế giới thứ 3 là gì? Nguồn gốc tên gọi

Khi bạn đã đăng nhập vào trang quản trị của báo cáo uri, hãy nhấp vào trang cài đặt và tiếp tục điền vào tên miền phụ ưa thích của bạn để xác định tên miền đó với các trang web khác.

report uri cau hinh

Khi đã điền subdomain bạn muốn, hãy nhìn qua cột trái, sẽ có luôn một đường dẫn theo subdomain đã tạo. Chúng ta không cần truy cập vào đó mà hãy chèn đường dẫn này vào cấu hình CSP theo cú pháp:

Và định cấu hình báo cáo của csp uri để trang web wordpress trở thành:

Chờ khoảng 30 phút để các báo cáo này đến. Nhưng không có báo cáo tốt nhất vì nó chứng minh rằng trang web không tải tài nguyên từ các nguồn xấu.

Sự cố gặp phải

Hiện tại, việc triển khai csp rất dễ dàng nếu chúng tôi không coi trọng vấn đề bảo mật. Trên thực tế, ngay cả khi chúng tôi đã triển khai csp, các thuộc tính không an toàn-nội tuyến và đánh giá không an toàn vẫn được đánh dấu là không an toàn cho trang web.

Nếu trong ví dụ ở đầu bài viết, hacker đã thông minh hơn và chèn mã javascript trực tiếp vào trang web thay vì tải xuống từ miền xauxa.com, thì thực sự không có gì để ngăn chặn nếu chúng ta vẫn sử dụng không an toàn – inline .

Vậy tại sao không … loại trừ nội tuyến không an toàn khỏi cấu hình csp?

Vấn đề không đơn giản như vậy. WordPress là một nền tảng mở, có thể cài đặt, có khả năng tùy biến cao và việc các plugin tự động chèn các đoạn mã javascript nội tuyến (an toàn) vào trang web của bạn là điều bình thường.

Bằng cách xóa nội dòng không an toàn, chúng tôi đã vô tình vô hiệu hóa tất cả javascript nội tuyến trên trang web, khiến một hoặc nhiều tính năng không còn hoạt động.

Tôi nghe nói rằng csp nonce có thể xử lý javascript nội tuyến?

Việc tiếp tục câu chuyện không hề dễ dàng. Một số plugin luôn có mã javascript thay đổi trên mọi trang, mọi bài đăng. Ví dụ: contact form 7 hoặc plugin comment comment của bài viết, việc chèn id bài viết vào biến vào đoạn mã javascript nội tuyến là hoàn toàn bình thường. Điều này làm cho không thể tạo số ngẫu nhiên được chia sẻ trên tất cả các bài viết này.

Kết thúc

Theo quan điểm của tôi, ngày nay việc triển khai tiêu đề csp cho các trang web là rất quan trọng. Người dùng và chúng tôi luôn có lợi khi có csp càng sớm càng tốt.

Ngay cả khi không thể tự động cấu hình csp hoặc có thuộc tính “nội tuyến không an toàn” có thể làm mất hiệu lực csp. Tuy nhiên, tôi đã chứng minh nhiều trường hợp csp có thể bảo vệ trang web của chúng tôi.

Bài viết được gắn thẻ: csp, security

Tham khảo: Nang mui s line dac biet la gi

Vậy là đến đây bài viết về Content Security Policy và cách triển khai trên trang WordPress đã dừng lại rồi. Hy vọng bạn luôn theo dõi và đọc những bài viết hay của chúng tôi trên website Onlineaz.vn

Chúc các bạn luôn gặt hái nhiều thành công trong cuộc sống!

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button