代码之家  ›  专栏  ›  技术社区  ›  Alexandro

PHP isset COOKIE语句未检测到COOKIE

  •  1
  • Alexandro  · 技术社区  · 1 年前

    我有这个php代码来检查特定的cookie,

    if(isset($_COOKIE['user']) && $_COOKIE['user'] == 'test12345'){
    
     // logic
    } 
    else {
     // more logic
    }
    

    如果我手动将cookie值“user”设置为“test12345”,当我检查请求时,它会显示在浏览器devtools和burpsuite中,但它不会触发If语句,只会触发else语句。对于更多上下文,站点是HTTP,这是一个post请求,我使用的是firefox。burpsuite中的语法正确吗?还是出了什么问题?有什么想法吗?

    enter image description here

    0 回复  |  直到 1 年前
        1
  •  0
  •   Congregator    1 年前

    首先,我建议您将第二个条件包裹在它自己的括号中,以排除奇怪的条件:

    if(isset($_COOKIE['user']) && ($_COOKIE['user'] == 'test12345')){
    

    接下来,尝试显示$_COOKIE中的所有内容:

    print_r($_COOKIE);
    

    它至少应该返回以下内容:

    Array
    (
        [user] => test12345
    )
    

    然后,检查是否 user 存在于其中,并且它是否包含预期值(没有奇怪的编码、空格…)。如果不存在,则说明数据在脚本中的某个位置丢失。