【问题标题】:Tornado's XSRF protectionTornado 的 XSRF 保护
【发布时间】:2013-07-09 21:51:56
【问题描述】:

我正在将 Facebook 的 Tornado Web 引擎用于 Python,我正在做一个项目,并计划实施 XSRF 保护,但这让我有点困惑。

在一个典型的请求中,如果没有找到它,它会为用户的浏览器设置一个“_xsrf”cookie,然后将其与浏览器随请求发送的 HTML 表单值中嵌入的值相匹配。

假设攻击者做了这样的事情:

<img src="blah.com/transfer_money?account=0098&destination=0099&_xsrf=
(whatever the client's cookie contains)" title="cool image" />

什么可以防止攻击者直接使用 cookie?据我所知,用于 XSRF 的 cookie 都不是来自check_xsrf_cookie method and the xsrf_token method that actually generates the XSRF token 的“安全”。我是不是错过了什么……?

【问题讨论】:

    标签: python cookies tornado csrf


    【解决方案1】:

    如果我理解正确,您是在问什么阻止攻击者访问给定域中的用户 cookie。

    嗯,答案是:浏览器安全策略。来自一个域的脚本无法访问来自其他域的 cookie(大多数情况下)。更多细节在这里:http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path

    这可以通过使用XSS (Cross-Site Scripting)攻击来规避:将脚本直接注入被攻击页面的源代码中。另一种方法是破坏客户端应用程序(浏览器)。

    但是,大多数情况下,攻击者无法从其他域中检索用户的 cookie。额外的安全级别是将特定 CSRF(或“XSRF”)令牌与特定用户相关联(并在验证期间对其进行检查)。

    【讨论】:

    • 是的,我更倾向于按用户进行检查。这就是 Tornado 的内置功能。它还提供安全 cookie(例如,使用仅显示在应用程序代码中的秘密值签名的 cookie),我想知道为什么它不是“安全的”;现在我知道了。
    猜你喜欢
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2014-09-30
    • 2018-02-18
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多