gpt4 book ai didi

php - CSRF 保护 : Hashed PHPSESSID enough?

转载 作者:行者123 更新时间:2023-12-03 20:05:11 28 4
gpt4 key购买 nike

只是想知道是否要求将散列的 PHPSESSID 发送到所有表单或操作脚本是否足以进行 CSRF 保护?我知道如果用户在同一物理网络 (firesheep) 上,则可以获得此信息。示例:

http://site.com/deleteMessage.php?mid=22&token=MD5ed_PHPSESSID

忽略相同的网络问题 PHPSESSID:

 1) Is known only to the user doing the action
2) Can not be guessed by an attacker crafting a malicious img or request (<img src="http://site.com/deleteMessage.php?mid=22&token=I_DONT_KNOW_IT_:( )
3) Can not be pulled on the same site assuming no XSS vulnerabilities exist.
4) Can easily be pulled by the legitimate user (Javascript fills the form or GET var in the link)

第 3 点让我担心,虽然我没有任何我知道的 XSS 漏洞,因为我 htmlentities($string,ENT_QUOTES)ed 一切,我不喜欢依赖假设。这是足够的 CSRF 保护还是有更好的方法?

最佳答案

如果攻击者知道 session ID,那么他就不必使用 CSRF 来影响受害者的 session 。使用散列 session ID 是一种不好的做法,但这不是漏洞。您甚至可以使用 session ID 本身,并且它在技术上不易受到 CSRF 的攻击。但它增加了失败的可能性,而防止这种失败是免费的。另一个加密随机数很容易生成。

XSS 破坏了 CSRF prevention cheat sheet 上的所有保护方法除了使用 capthca。也就是说,您应该使用 HTTP_Only cookie 标志来保护您的 session ID 免受 XSS 攻击。

请记住,HTTP_only 标志不会阻止 XSS!,它只会增加利用的难度。通常,攻击者使用 XHR 来读取 CSRF token 以“骑乘” session 而不是劫持 session ID。

关于php - CSRF 保护 : Hashed PHPSESSID enough?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8977046/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com