浏览器扩展中的CSRF保护

时间:2013-08-01 07:17:36

标签: google-chrome-extension firefox-addon csrf safari-extension csrf-protection

我需要为我的网站实施CSRF保护。所以我开始在我的网站上为所有表单实现此功能,但我在浏览器扩展程序(Chrome,Safari,Firefox)中实现它时遇到了问题。我不知道如何为我的扩展(表单和ajax帖子)中的帖子执行此操作。有没有人实现过这个?

1 个答案:

答案 0 :(得分:3)

嗯,以下是我看到人们实际使用的一些东西 - 在我的函数中作为addons.mozilla.org(代码)审阅者:

  1. 设计合适的API。 SO和网络上有大量资源,例如:详细说明如何正确构建,例如Restful API并保护它们免受CSRF的侵害。要记住的是,与常规网页相比,扩展API提供的XHR要么不关心同源,要么让您定义允许扩展访问的一组位置。因此,特定于扩展的API不需要实现CORS,这会大大缩小这些API的攻击面。当然,最好还是使用CORS来确保您的API安全。
  2. 设计完整的Web API可能需要花费很多时间。我看到人们构建了一个非常小的一个:API包含一个方法,可以将CSRF令牌与常规的非常APIy现有表单一起使用。
  3. 如果您无法实施适当的API,例如它不是你的网站/代码,或者你只是缺乏时间,资源和/或技能来学习,然后设计和实现API,还有另一种方法:只需网络抓取网站(通常是XHR +正则表达式)并获得这样就是CSRF令牌。同样,扩展不必遵循同源,因此网页抓取始终是可能的,而网站不能做同样的事情,除非CORS允许。
  4. 几乎忘了:有些扩展只不过是一个按钮,可以打开服务器上的常规网页 - 不一定是常规标签,但通常在您正在处理的扩展API提供的某种面板中。
相关问题