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