【问题标题】:CSRF protection techniquesCSRF 保护技术
【发布时间】:2010-12-03 07:22:04
【问题描述】:

谁能告诉我有关如何保护应用程序免受 CSRF 影响的信息?

与此相关的任何代码。

我在 UI 上使用 extjs,在后端和 tomcat 服务器上使用 Java。

提前致谢。

【问题讨论】:

标签: csrf csrf-protection


【解决方案1】:

以 dan_waterworth 建议的方式使用会话 ID,虽然很容易,但保护效果很差。攻击者只需要捕获会话ID cookie,然后就可以绕过会话生命周期的保护。

会话 ID 是一个 cookie,因此它随任何请求一起提交。因此,攻击者要捕获 sessionid 所需要做的就是使您的应用程序向攻击者控制的服务器提交请求。这可以通过跨站点脚本攻击来完成,但也可以通过构建应用程序并提交 iFrame 的表单来完成(还有其他方法可以做到这一点)。

需要保护免受 CSRF 影响的交互应该包括攻击者不可能事先知道的信息(CSRF 令牌),每个会话、每个页面和每个表单都是唯一的,理想情况下只使用一次。 CSRF 令牌应该在表单中提交,而不是在 cookie 中(出于上述原因)。有关详细信息和示例实现,请参阅OWASP CSRF protection cheatsheet 中的“实现示例”。一些 Web 应用程序引擎(例如 Tomcat 8)和框架(例如 Spring、JSF)具有可以通过打开配置来应用的保护。

【讨论】:

    【解决方案2】:

    是的,我有一个对我很有效的简单解决方案。对于每个 post 请求,通过 javascript(从 cookie 获取)发送数据中的 sessionid,在服务器端它只需要检查每个 post 请求的 sessionid cookie 和数据中的 sessionid 是否相同。

    【讨论】:

    • 我在我的项目中使用 Tomacat 服务器。
    • 我以前从来没有用过java做网站,(python规则),你能添加为每个请求调用的代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2018-05-27
    • 2012-10-08
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多