Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services HTTPS上提供的浏览器插件专用API中的CSRF预防_Web Services_Security_Csrf_Browser Plugin_Csrf Protection - Fatal编程技术网

Web services HTTPS上提供的浏览器插件专用API中的CSRF预防

Web services HTTPS上提供的浏览器插件专用API中的CSRF预防,web-services,security,csrf,browser-plugin,csrf-protection,Web Services,Security,Csrf,Browser Plugin,Csrf Protection,我必须设计一个只支持浏览器插件的API(最新版本的Chrome、Firefox、IE)。API将通过HTTPS提供服务。API将使用基于cookie的访问控制方案 我想知道预防CSRF应该采取什么策略。具体来说,我希望我的API只从我自己的浏览器插件本身获取请求,而不是从任何其他页面/插件获取请求 我能否: 假设在大多数情况下会有一个原点标题 我是否能够比较并信任Origin头,以确保请求只来自白名单上的一组Origin 这是否可以兼容所有浏览器(Chrome/Firefox/IE) 我知道

我必须设计一个只支持浏览器插件的API(最新版本的Chrome、Firefox、IE)。API将通过HTTPS提供服务。API将使用基于cookie的访问控制方案

我想知道预防CSRF应该采取什么策略。具体来说,我希望我的API只从我自己的浏览器插件本身获取请求,而不是从任何其他页面/插件获取请求

我能否:

  • 假设在大多数情况下会有一个原点标题
  • 我是否能够比较并信任Origin头,以确保请求只来自白名单上的一组Origin
  • 这是否可以兼容所有浏览器(Chrome/Firefox/IE)
我知道有多种技术用于防止CSRF,例如,但我想知道,在我上面的有限范围内,仅仅检查原始标头是否足够


提前谢谢

设置自定义标题,如
X-From-My-Plugin:yes
。服务器应要求其存在。它可以是一个常数。web攻击者可以:

  • 从用户的浏览器发出请求:这会发送cookie,但他们不能跨源发送自定义标头;或
  • 从不同的HTTP客户机发出请求:他们可以发送自定义头,但不能发送cookie,因为他们不知道它

  • 无论哪种方式,攻击者的请求都不会同时包含cookie和自定义头。

    任何请求头都很容易被伪造。如果你的用户可以通过你的“基于cookie的访问控制方案”进行身份验证,你真的在乎他们使用什么客户端吗?这在Firefox上有效吗?据我所知,Firefox是Chrome所具有的粒度权限模型。因此,对于Firefox,我是否理解浏览器不允许设置自定义域,并将强制客户端执行飞行前请求?Firefox中没有“其他扩展”的概念,因为所有扩展和浏览器本身都是具有完全权限的同一安全主体的一部分。