我正在为我的电子商务网站寻找CSRF。我已经为表单实现了基于令牌的方法。
我的网站的购物篮页面上有一个结帐链接,只是链接到地址页面。一旦进入地址页面,就会进行各种检查以确保用户已登录并在其购物篮中有物品。然后,它根据存储在会话中的user_id抽出用户现有地址。
我的问题是,结帐链接中是否存在任何漏洞?它不会以任何方式改变任何数据。
答案 0 :(得分:1)
如果您只能从请求中检索数据,那么CSRF就是安全的。
CSRF是一种攻击,它诱使用户提出更改内容的请求(发布评论(可能是垃圾邮件!),购买内容,投票,更改帐户详细信息等)。
答案 1 :(得分:1)
CSRF不是“易受攻击”或“不易受攻击”的漏洞类型。更多的是“可以利用某些东西吗?”。让我详细说明一下。
CSRF背后的全部理念是强制用户(通过任何可用的方式)以编程方式(并且最好在未经他们同意的情况下)执行更改。这样做的方法是找到您尝试攻击的网站的一部分,其中包含重要请求:
GET
参数完成(此时您可以使用img
标记诱骗用户的浏览器触发它) CSRF本身很少见(大多数网站都会使用POST
来处理很多事情。很少需要使用图片标记)。更可能的组合是CSRF + XSS,尽管可以找到变体。
防御CSRF的关键不是“我的链接可能被黑客攻击!!!”。此外,请确保您使用GET
重播的请求是幂等的(即不会导致状态更改),并且其他任何内容都使用一次性令牌来阻止自动重播。