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

Yam*_*iko 2 php security post

在过去,我使用以下内容从已发布的表单创建变量.

foreach($_POST as $k=>$v)
{
    $$k = $v;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

joh*_*nes 8

攻击者可以_SESSION在您的会话中注入一个被调用的POST变量以及该写入数据,这样您就不能再信任您的会话了.

  • @alex那么`$ post = $ _POST`是一个很好的解决方案.将所有内容提取到单个变量通常只会让您的生活变得更难*. (3认同)