1

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

4

1 回答 1

4

好吧,这里有一些我看到人们实际使用的东西——在我作为 addons.mozilla.org(代码)审阅者的功能中:

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