从两个不同的应用程序,我能够发送跨域请求。尽管浏览器返回“跨源”错误,但我的服务器仍在接收和执行请求。例如,我可以从远程站点调用跨域请求
$.ajax({
xhrFields: {
withCredentials: true
},
data:{ my: 'a' },
url: 'http://MyApp/Page',
type: 'POST'
})
我知道浏览器不会返回对脚本的响应,但我的服务器页面仍在执行。
假设一个无辜的用户登录了一个站点http://example.com。此应用程序将接受 POST 请求以插入记录。当无辜用户访问 http://HackerSite.com时,http://HackerSite.com将能够http://example.com通过 AJAX 发送 POST 请求。如何防止这种情况?