关于cookie、代码注入等的安全问题


Security concerns regarding cookies, code injection, etc

我正在使用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']的内容可以被修改。