从2个不同的应用程序中,我能够发送交叉请求。尽管浏览器返回了跨源的错误,但我的服务器仍在接收和执行请求。例如,从远程站点,我可以使用,如何阻止其他网站发送跨域ajax请求?
$.ajax({
xhrFields: {
withCredentials: true
},
data:{ my: 'a' },
url: 'http://MyApp/Page',
type: 'POST'
})
我知道,浏览器不会返回到脚本响应调用跨域请求,但我的服务器页面仍然执行。
假设一个无辜的用户登录一个网站,http://abc.com。此应用程序将接受插入记录的发布请求。当无辜的用户访问无辜的http://HackerSite.com时,http://HackerSite.com将能够通过Ajax发送POST请求至http://abc.com。如何避免这种情况?
很好的问题。如果你有答案,我会欣赏很多,如果你张贴如果。 –
对于WCF服务,您可以在端点配置中将** crossdomainscriptaccessenabled **设置为false。 – Saranya
您将会遇到与表单提交相同的问题,不涉及JavaScript。 CORS规范并没有考虑额外的安全性。相反,它允许您基本上执行您已经可以执行的相同操作(交叉源)sans ajax。 CORS规范有点远,因为它可以确保你的服务器甚至不会收到底层请求,如果你的服务器没有正确选择规范并且相同的请求不能被发送,那么交叉源sans ajax(比如说,通过表单提交)。这最后一个概念被称为预检。 –