2011-07-19 20 views
12

http://en.wikipedia.org/wiki/Same_origin_policyMô hình đe dọa cho cùng một chính sách gốc là gì?

Chính sách xuất phát tương tự ngăn chặn tập lệnh từ một trang web nói chuyện với một trang web khác. Wiki nói đó là một "khái niệm an ninh quan trọng", nhưng tôi không rõ ràng về những mối đe dọa mà nó ngăn cản.

Tôi hiểu rằng các cookie từ một trang web không được chia sẻ với một trang web khác, nhưng có thể được (và) được thực thi riêng biệt.

Tiêu chuẩn CORS http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing cung cấp hệ thống hợp pháp để bỏ qua cùng chính sách gốc. Có lẽ nó không cho phép bất kỳ mối đe dọa chính sách gốc tương tự được thiết kế để ngăn chặn.

Nhìn vào CORS, tôi thậm chí còn chưa rõ ràng ai đang được bảo vệ khỏi những gì. CORS được thực thi bởi trình duyệt để nó không bảo vệ trang web nào khỏi trình duyệt. Và các hạn chế được xác định bởi trang web mà tập lệnh muốn nói chuyện, do đó, nó dường như không bảo vệ người dùng từ một trong hai trang web.

Vì vậy, chính sách gốc giống như thế nào?

Trả lời

1

Ví dụ: nó ngăn không cho Tiếp cận thông từ kiểm tra số dư trên tài khoản ngân hàng của bạn. Hoặc, thậm chí tệ hơn, rối tung với hình thức bạn sắp gửi (sau khi nhập mã PIN/TAN) để họ nhận được tất cả số tiền.

CORS chủ yếu là tiêu chuẩn cho các trang web đảm bảo rằng chúng không cần loại bảo vệ này. Về cơ bản nó nói "nó là OK cho một kịch bản từ bất kỳ trang web để nói chuyện với tôi, không có bảo mật có thể có thể bị phá vỡ". Vì vậy, nó thực sự cho phép những thứ bị cấm bởi SOP, ở những nơi không cần bảo vệ và các trang web đa miền có lợi. Hãy suy nghĩ của meshups.

+0

Làm cách nào để thực hiện điều đó mà không cần truy cập cookie? hoặc tôi có sai về các cookie được bảo vệ không? –

+1

Cookie có thể được gửi cùng với yêu cầu CORS bằng cách đặt thuộc tính yêu cầu 'withCredentials' thành' true'. Vì JavaScript vẫn có quyền truy cập vào các cookie, nên không có lợi ích trong việc thiết lập các rào cản bổ sung ở đó. Một đọc tốt đẹp về chủ đề này là ở đây: http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ – Waldheinz

4

Bài viết @EricLaw đề cập đến, "Same Origin Policy Part 1: No Peeking" là tốt.

Dưới đây là một ví dụ đơn giản về việc tại sao chúng ta cần các chính sách cùng một nguồn gốc ':

Có thể hiển thị các trang web khác trong trang web của riêng bạn bằng cách sử dụng một khung nội tuyến (một "khung nội tuyến" nơi một tài liệu HTML trong một khung). Giả sử bạn hiển thị www.yourbank.com. Người dùng nhập thông tin ngân hàng của họ. Nếu bạn có thể đọc HTML bên trong của trang đó (yêu cầu sử dụng tập lệnh), bạn có thể dễ dàng đọc thông tin tài khoản ngân hàng và bùng nổ. Vi phạm an ninh.

Do đó, chúng tôi cần chính sách xuất xứ giống nhau để đảm bảo một trang web không thể sử dụng tập lệnh để đọc thông tin của trang web khác.

0

Mục đích của chính sách cùng một nguồn gốc là để tránh các mối đe dọa của một trang web độc hại M thông tin đọc từ trang web tin cậy Asử dụng uy quyền (ví dụ: cho phép cookie) của một người sử dụng của A. Đó là chính sách trình duyệt, không phải chính sách máy chủ hoặc tiêu chuẩn HTTP và có nghĩa là giảm thiểu rủi ro của chính sách trình duyệt khác — gửi cookie từ trang web A khi liên hệ với trang web A.

Lưu ý rằng không có gì để ngăn chặn M truy cập vào A bên ngoài trình duyệt. Nó có thể gửi bao nhiêu yêu cầu như nó muốn. Nhưng nó sẽ không làm như vậy với quyền hạn của một người sử dụng không rõ ràng của A, đó là những gì có thể xảy ra khác trong trình duyệt.

Cũng lưu ý rằng chính sách ngăn trang M từ đọc từ A.Nó không bảo vệ máy chủ A khỏi các tác động của yêu cầu. Cụ thể, trình duyệt sẽ cho phép tên miền chéo POSTS —cookie và tất cả — từ M đến A. Mối đe dọa đó được gọi là Cross-Site Request Forgery; nó không được giảm nhẹ bởi Chính sách xuất xứ tương tự và do đó điều quan trọng là các máy chủ phải tự bảo vệ mình khỏi nó.