Từ 2 ứng dụng khác nhau, tôi có thể gửi yêu cầu qua nhiều lần. Mặc dù trình duyệt trả về lỗi của Cross-Origin nhưng máy chủ của tôi vẫn đang nhận và thực thi yêu cầu. Ví dụ: từ một trang web từ xa, tôi có thể gọi yêu cầu tên miền chéo bằng cách sử dụng,Làm thế nào để ngừng các trang web khác gửi yêu cầu ajax miền chéo?
$.ajax({
xhrFields: {
withCredentials: true
},
data:{ my: 'a' },
url: 'http://MyApp/Page',
type: 'POST'
})
Tôi biết rằng trình duyệt không trả về phản hồi cho tập lệnh, nhưng trang máy chủ của tôi vẫn thực thi.
Giả sử người dùng vô tội đăng nhập một trang web, http://abc.com. Ứng dụng này sẽ chấp nhận yêu cầu đăng bài để chèn bản ghi. Khi người dùng vô tội truy cập vào số http://HackerSite.com vô tội, số http://HackerSite.com sẽ có thể gửi yêu cầu POST tới http://abc.com qua Ajax. Làm thế nào để tránh điều này?
Câu hỏi hay. Nếu bạn có câu trả lời cho rằng tôi sẽ đánh giá cao rất nhiều nếu bạn đăng nếu. –
Đối với dịch vụ WCF, bạn có thể đặt ** crossdomainscriptaccessenabled ** thành false trong cấu hình điểm cuối của bạn. – Saranya
Bạn sẽ có cùng một vấn đề với việc gửi biểu mẫu, không tham gia javascript. Thông số CORS không được tạo ra với sự bảo mật bổ sung. Thay vào đó, nó cho phép bạn về cơ bản thực hiện các hành động tương tự mà bạn đã có thể thực hiện (cross-origin) sans ajax. Thông số CORS đi xa hơn một chút, trong đó nó đảm bảo máy chủ của bạn thậm chí không nhận được yêu cầu cơ bản, nếu máy chủ của bạn không chọn tham số chính xác và yêu cầu tương tự không thể được gửi đi qua nguồn gốc ajax (nói, thông qua gửi biểu mẫu). Khái niệm cuối cùng này được gọi là preflighting. –