我正在使用PHP设置cookie,我想知道cookie存在哪些安全风险。
例如,代码注入是可能的,就像有人可以设置cookie为mail(blah, blah, blah);
,并从我的服务器发送垃圾邮件?或者设置cookie为file_get_contents('secretfile.txt');
读取敏感系统文件?
我假设这取决于如何使用cookie,像这样显然是愚蠢的:
<?php
exec($_COOKIE['cmd']);
?>
然而,使用cookie仅仅设置输入值而不进行清理是安全的吗?
cookie和用户输入一样安全。你应该非常小心。
不,它是不是您可以编辑cookie的值,如GET或POST参数。
Firebug能够在Firefox和Chrome中做到这一点,其中有本地调试器,所以也要验证cookie的内容。
这是一个常见的错误:if(isset($_COOKIE['lang'])){
$lang=$_COOKIE['lang'];
}else{
$lang="english";
}
include ("translation/".$lang.".html");
这将允许在本地文件包含 (LFI)的情况下,因为$_COOKIE['lang']的内容可以被修改。