使用foreach循环从$_POST获取创建变量存在安全问题


Using a foreach loop to get create variables from $_POST security issues?

在过去,我曾使用以下代码从已发布的表单创建变量。

foreach($_POST as $k=>$v)
{
    $$k = $v;
}

使用此方法有哪些安全风险?

我正在做一些测试。这个版本在创建变量之前删除任何不是字母或数字的东西怎么样?

foreach($_POST as $k=>$v)
{
    $k = preg_replace("/[^[:alnum:]]/","",$k);
    $$k=$v;
}

攻击者可以注入一个名为_SESSION的POST变量,并通过该变量在会话中写入数据,从而使您无法再信任您的会话。