【问题标题】:How to protect against CSRF如何防范 CSRF
【发布时间】:2015-05-05 14:06:37
【问题描述】:

如何保护我的网站免受跨站请求伪造攻击? 我正在访问一个“正常”的网站。 (例如 normal.php) 在后台,它会加载我已经登录的另一个网站(f.e.victim.php/send_comment)。 该网站用JS填充victim.php的评论框并自动发送请求。

在网络上,我总能找到针对 CSRF 使用令牌的技巧。但在本例中,网站 normal.php 将在加载其他网站时获取令牌。 我是否误解了令牌的工作原理?如果没有,我怎样才能阻止我的网站接受这个请求?

【问题讨论】:

    标签: token csrf


    【解决方案1】:

    CSRF 的整体理念是,如果没有您访问过的前一页的令牌,您无法获得victim.php/send_comment

    您从初始登录开始形成一个请求“链”,直到您到达那里,每个请求都由前一个请求授权 - 除非您拦截登录页面,否则应该无法伪造请求。

    最简单、最安全的方法就是使用一个为您处理 CSRF 的 Web 框架。手工操作可能没有必要且容易出错。

    【讨论】:

    • @GURKE 这在很大程度上取决于您的语言偏好。对于 python 或 ruby​​,许多(可能是大多数)框架都内置了 CSRF。我不太确定 PHP 或 Java,但请记住 CSRF 通常只是次要功能 - 我不会仅仅因为这个而选择框架
    猜你喜欢
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2015-01-19
    • 2021-06-26
    • 2013-11-12
    • 2015-09-28
    • 1970-01-01
    相关资源
    最近更新 更多