小编典典

跨域表单过帐

html

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

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

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

  1. 如果Chrome,IE或Firefox允许域“ Y”中的内容将POST发送到域“ X”
  2. 如果收到POST的服务器实际上将看到所有表单值。我之所以这样说,是因为大多数在线讨论都记录了测试人员说服务器收到了该帖子,但是表单值都是空的/已被剥离。
  3. 官方文件(即RFC)解释了预期的行为(无论浏览器当前已实现了什么)。

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


阅读 296

收藏
2020-05-10

共1个答案

小编典典

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

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

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

有关更多信息,请参见Wikipedia。

2020-05-10