当前位置: 首页 > 面试题库 >

如何阻止恶意代码欺骗“ Origin”标头来利用CORS?

令狐辉
2023-03-14
问题内容

据我了解,如果在foo.com页面上运行的客户端脚本想要从bar.com请求数据,则在请求中必须指定标头Origin: http://foo.com,而bar必须以响应Access-Control-Allow-Origin: http://foo.com

有什么方法可以阻止roh.com网站上的恶意代码简单地欺骗标头Origin: http://foo.com从bar请求页面?


问题答案:

浏览器可以控制Origin标题的设置,用户无法覆盖此值。因此,您不会看到Origin来自浏览器的标头。恶意用户可以制作一个手动设置Origin标头的curl请求,但是该请求将来自浏览器外部,并且可能没有特定于浏览器的信息(例如cookie)。

请记住:CORS不是安全性。不要依靠CORS保护您的网站。如果您要提供受保护的数据,请使用Cookie或OAuth令牌或Origin标头以外的其他内容来保护该数据。Access- Control-Allow-OriginCORS中的标头仅指示应允许哪个起源发出跨域请求。不要再依赖它了。



 类似资料:
  • 按照我的理解,如果客户端脚本在来自foo的页面上运行。com希望从bar请求数据。com,在请求中必须指定头,bar必须响应。 有什么可以阻止来自roh网站的恶意代码。com从简单的欺骗头是否从工具栏请求页面?

  • 我有一个PHP应用程序,我们正在添加测试,使用代码欺骗。我们试图添加指定(和验证)到我们的套件,但它不被识别。你如何正确设置指定与代码欺骗一起使用? 在我的composer.json中,我有以下内容: 我在添加指定和验证后运行了作曲家更新,并获得了以下输出: 我有一个这样的测试(主要是由generate:test生成的): 当我运行单元测试时,我会得到以下输出: 我使用的参考文献是:http://

  • 我正在编写一组简单的PHP函数,我只使用纯PHP7,没有框架,什么都没有。这些函数稍后将在CMS中的插件中使用,但这不是重点。我想使用Codeception为我的函数编写单元测试(为了熟悉它,我知道Codeception基本上只在这里运行PHPUnit),但我真的不知道如何以合理的方式将Codeception指向我的代码。 我的结构如下:我有,其中包含我想要测试的函数,大致如下: 我使用Compo

  • 我已经按照他们网站上的指南安装了Codeception。创建第一个测试。 $I=新WebGuy($scenario); $I- $I- $I- 当我们开始测试php codecept.phar运行时,我们得到了什么: Codeception PHP测试框架v1.6.5由Sebastian Bergmann的PHPUnit 3.7.23提供支持。PHP注意:在第163行的phar://C:/wamp

  • 我试图在每个测试套件开始时进行一个API调用,但没有找到这样做的方法。在我的模块中,我重载了方法,但是当我试图从REST模块调用时,我得到了错误。我的模块类看起来像这样: 这给了我一个PHP错误: 对/../vendor/codeception/codeception/src/codeception/Module/REST.php:476中的非对象调用成员函数request() 我如何在\u be

  • 当我在验收测试中更改应用程序模型时,测试实际使用该模型,当我在功能测试中更改应用程序模型时。。。测试仍然使用yii/web/application,我需要它来使用我的公共/组件/应用程序模型。我怎样才能改变这一点? 功能_bootstrap包含我的自定义模型...(通用/组件/应用程序)我完全困惑...... 当我运行测试代码时: 然后我得到错误: 这个nowSQL是在common\compone