PHP Superglobals 有不同的行为方式,我不确定该使用哪一种。
客户端(我说的不是黑客或安全攻击,而是“普通用户”)何时可以编辑、创建或访问超全局变量?
甚至php.net文档也没有谈论这个事实。
根据我到目前为止所学的知识,我可以这样总结它们:
superglobal read create edit
$_GET V V V
$_POST X V X
$_FILES X V X
$_SESSION ? X X
$_COOKIE V V V
我不是在谈论你的 PHP 脚本,当用户发送表单或类似的东西时,它会创建一个SESSION变量,但我在谈论这样一个事实,即任何人都可以在 DOM 中添加一个伪造的表单来发布任何东西或使用一个简单的像EditThisCookie这样的Chrome 扩展程序可以读取、创建或编辑任何COOKIE。
所以:
我的桌子对吗?我不确定某些要点,出于安全原因,它们至关重要
我应该在哪里存储敏感数据,例如访问令牌或用户ID?
我一直将ID存储在COOKIE中,因为我可以设置它的过期时间,然后我发现任何人都可以伪造它们。如果没有办法阻止它,我将被迫使用SESSION,问题是它与浏览器会话一起过期(当用户关闭其浏览器时,他将失去其登录会话)。
或者有时我使用POST方法来验证调用来自特定页面,但后来我意识到客户端可以读取该表单的内容并从任何地方伪造它。我也应该为此目的使用SESSION吗?
波斯汪