我已经看过有关该主题的文章和帖子(包括SO),并且普遍的评论是,同源策略阻止跨域的POST形式。我见过有人建议将同源政策不适用于表单帖子的唯一位置是此处。我想从一个更“官方”或正式的来源获得答案。例如,是否有人知道解决同源性如何影响表单POST的RFC?澄清:我不是在问是否可以构造GET或POST并将其发送到任何域。我在问:如果Chrome,IE或Firefox允许域“ Y”中的内容将POST发送到域“ X”如果收到POST的服务器实际上将看不到任何表单值。我之所以这样说,是因为大多数在线讨论都记录了测试人员说服务器收到了该帖子,但是表单值都是空的/已被剥离。官方文件(即RFC)解释了预期的行为(无论浏览器当前已实现了什么)。顺便说一句,如果同源源不影响表单POST,那么这使得为什么需要使用防伪令牌更加明显。我之所以说“有点”,是因为很难相信攻击者可以简单地发出HTTP GET来检索包含防伪令牌的表单,然后进行包含相同令牌的非法POST。评论?
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
相同的原始策略与将请求发送到另一个url(不同的协议,域或端口)无关。
这一切都是为了限制对另一个URL的访问(读取)响应数据。因此,页面内的JavaScript代码可以发布到任意域,也可以将该页面内的表单提交到任何地方(除非表单位于具有不同url的iframe中)。
但是导致这些POST请求效率低下的原因是这些请求缺少防伪令牌,因此其他url会将其忽略。此外,如果JavaScript试图通过向受害者url发送AJAX请求来获取该安全性令牌,那么将通过Same Origin Policy阻止访问该数据。
添加回答
举报
0/150
提交
取消