Jas*_*ary 10 php xss csrf csrf-protection
我继承了一些最近被攻击的代码,攻击者发送了重复的远程表单提交.
我使用我为每个用户创建的会话身份验证令牌(而不是会话ID)实施了预防.虽然我意识到这个特定的攻击不是CSRF,但我从这些帖子中调整了我的解决方案(尽管已过时).
但是,它仍然觉得这里存在一些漏洞.虽然我知道没有什么是100%安全的,但我有一些问题:
最后,我正在寻求更好的理解,以便我可以实现更强大的解决方案.
据我所知,你需要做三件事:让所有人改变数据操作只能使用POST请求,不允许没有有效引用的POST请求(它必须来自同一个域)并在每个POST请求中检查auth令牌( POST令牌值必须与cookie中的令牌相同).
前两个将使得很难做出任何有害的CSRF请求,因为它们通常是电子邮件,其他网站等中的隐藏图像,并且在现代浏览器中制作具有有效引用的跨域POST请求应该是不可能/难以做到的.如果没有窃取用户的cookie /嗅探他的流量,这将使得完全不可能做任何有害行为.
现在关于你的问题:
UPD:因为我们不再谈论CSRF:你可以实施许多模糊的防御措施,防止蜘蛛机器人提交你的表格:
以及更多,但在一天结束时,一些现代机器人使用真实用户行为的总体模拟(使用真正的浏览器API调用) - 所以如果有人真的想要攻击你的网站,没有这样的防御将帮助你.即使CAPTCHA今天也不是很可靠 - 除了复杂的图像识别算法,你现在可以购买1000个CAPTCHA,由人类为任何网站解决,价格低至1美元(你可以在发展中国家找到这样的服务).所以真的,没有100%防御机器人 - 每种情况都不同:有时你必须自己创建复杂的防御系统,有时只需要一点点调整就会有所帮助.