为了账号安全,请及时绑定邮箱和手机立即绑定

跨域表单过帐

/ 猿问

跨域表单过帐

catspeake 2019-10-15 14:51:04

我已经看过有关该主题的文章和帖子(包括SO),并且普遍的评论是,同源策略阻止跨域的POST形式。我见过有人建议将同源政策不适用于表单帖子的唯一位置是此处。

我想从一个更“官方”或正式的来源获得答案。例如,是否有人知道解决同源性如何影响表单POST的RFC?

澄清:我不是在问是否可以构造GET或POST并将其发送到任何域。我在问:

  1. 如果Chrome,IE或Firefox允许域“ Y”中的内容将POST发送到域“ X”

  2. 如果收到POST的服务器实际上将看不到任何表单值。我之所以这样说,是因为大多数在线讨论都记录了测试人员说服务器收到了该帖子,但是表单值都是空的/已被剥离。

  3. 官方文件(即RFC)解释了预期的行为(无论浏览器当前已实现了什么)。

顺便说一句,如果同源源不影响表单POST,那么这使得为什么需要使用防伪令牌更加明显。我之所以说“有点”,是因为很难相信攻击者可以简单地发出HTTP GET来检索包含防伪令牌的表单,然后进行包含相同令牌的非法POST。评论?


查看完整描述

3 回答

?
蝴蝶刀刀

相同的来源策略仅适用于浏览器端编程语言。因此,如果您尝试使用JavaScript发布到与原始服务器不同的服务器,则将使用相同的原始策略,但是如果您直接从表单发布,即操作指向不同的服务器,例如:


<form action="http://someotherserver.com">

并且在发布表单时不涉及任何JavaScript,因此相同的来源政策不适用。


查看完整回答
反对 回复 2019-10-15
?
波斯汪

可以构建任意的GET或POST请求,并将其发送到受害浏览器可访问的任何服务器。这包括本地网络上的设备,例如打印机和路由器。


有许多构建CSRF利用的方法。 可以使用方法发送基于POST的简单CSRF攻击.submit()。更复杂的攻击,例如跨站点文件上传,CSRF攻击将利用xhr.withCredentals行为的CORS使用。


CSRF不会违反JavaScrip t的“同源策略”,因为SOP与JavaScript有关读取服务器对客户端请求的响应有关。CSRF攻击并不关心响应,它们关心的是副作用或请求所产生的状态更改,例如添加管理用户或在服务器上执行任意代码。


确保使用OWASP CSRF预防备忘单中介绍的方法之一保护您的请求。有关CSRF的更多信息,请参阅CSRF上的OWASP页面。


查看完整回答
反对 回复 2019-10-15
?
倚天杖

相同的原始策略与将请求发送到另一个url(不同的协议,域或端口)无关。

这一切都是为了限制对另一个URL的访问(读取)响应数据。因此,页面内的JavaScript代码可以发布到任意域,也可以将该页面内的表单提交到任何地方(除非表单位于具有不同url的iframe中)。

但是导致这些POST请求效率低下的原因是这些请求缺少防伪令牌,因此其他url会将其忽略。此外,如果JavaScript试图通过向受害者url发送AJAX请求来获取该安全性令牌,那么将通过Same Origin Policy阻止访问该数据。


查看完整回答
反对 回复 2019-10-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信