我有这个php代码来检查特定的cookie,
if(isset($_COOKIE['user']) && $_COOKIE['user'] == 'test12345'){ // logic } else { // more logic }
如果我手动将cookie值“user”设置为“test12345”,当我检查请求时,它会显示在浏览器devtools和burpsuite中,但它不会触发If语句,只会触发else语句。对于更多上下文,站点是HTTP,这是一个post请求,我使用的是firefox。burpsuite中的语法正确吗?还是出了什么问题?有什么想法吗?
首先,我建议您将第二个条件包裹在它自己的括号中,以排除奇怪的条件:
if(isset($_COOKIE['user']) && ($_COOKIE['user'] == 'test12345')){
接下来,尝试显示$_COOKIE中的所有内容:
print_r($_COOKIE);
它至少应该返回以下内容:
Array ( [user] => test12345 )
然后,检查是否 user 存在于其中,并且它是否包含预期值(没有奇怪的编码、空格…)。如果不存在,则说明数据在脚本中的某个位置丢失。
user