Tìm hiểu cơ bản về Same-Origin Policy (SOP)

Same-Origin Policy (SOP) là một phần quan trọng trong hệ thống bảo mật của trình duyệt nhằm ngăn chặn những trang web độc hại truy xuất được các thông tin bí mật của những trang web khác. Ví dụ thepriatebay.com không thể truy xuất dữ liệu từ trang Barclays.com vì nó bị chặn bởi SOP

Phương thức hoạt động rất đơn giản, đó là những trang web khác trang web gốc có thể gửi requests đến những domains khác nhưng không nhận được responses trả về. Có một số thành phần không thể chặn được SOP như hình ảnh, scripts – Vì đây là những thành phần mà ứng dụng web sử dụng công khai và những thành phần này không ảnh hưởng đến vấn đề bảo mật của ứng dụng web.

Ví dụ, JavaScript có thể được request từ một domain khác. Chẳng hạn http://malicious.site có thể gửi request đến script của http://confidential.site, tuy nhiên đoạn script lúc này sẽ thực thi trên malisious.site vì thế không thể đánh cắp cookies, sessions tokens hoặc các dữ liệu bí mật từ trang confidential.site.

Tóm lại các thành phần không thể bị chặn bởi SOP khi gửi request đến thì nó sẽ chỉ hoạt động tại chính trang thực hiện gửi Request.

Một trang web được xem là “same-origin” khi phải cùng hostname, protocol và port.

Ví dụ:

http://confidential.site http://malicious.site Khác Origin
http://confidential.site https://confidential.site Khác Origin

 

Một điều cần chú ý là SOP không ngăn chặn việc khởi tạo và gửi các REQUEST và cũng không ngăn chặn phía Server sẽ không thực thi các REQUEST này, nhưng trình duyệt sẽ giúp ngăn chặn thực thi các RESPONES từ phía SERVER trả về. Tuy nhiên một vài REQUEST lại không cần phải thực thi RESPONSE, và lợi dụng điều đó kẻ tấn công vẫn thực hiện được ý đồ của mình – Đây là loại tấn công Cross-Origin Request Forgery (CSRF).

Ví dụ:

Một ngân hàng thực hiện chuyển tuyền thông qua REQUEST:

http://bank.site/?amount=1000&account=22984098

và khi RESPONSE trả về chỉ là thông báo cho người dùng rằng việc chuyển tiền thành công:

“Transfer Successfully”

Như vậy, ta thấy được rằng, việc tấn công mặc dù không cần trình duyệt xử lý hiển thị thông báo chuyển tiền thành công nhưng phía ngân hàng vẫn thực hiện chuyển tiền. Để khắc phục được tình trạng này, bên cạnh kết hợp SOP chúng ta cần bổ sung một phương pháp khác như: Xác thực Captcha, Token, ReAuthen…

Same-Origin Policy được sử dụng rất rộng rãi hiện nay ở các trang web lớn, đặc biệt những trang web về thương mại điện tử, SOP còn được dùng để hỗ trợ chống lại lại CSRF khá hiệu quả.

Để thực hiện cấu hình Same-Origin, ta thiết lập X-Frame-Options là SAMEORIGIN trong Nginx.conf chỉnh sửa như sau:

 

Leave a Reply

Your email address will not be published. Required fields are marked *