一个很好的函数来逃避$ _POST //你怎么看待它

Arn*_*aud 0 php mysql

我正在使用$ _POST并且知道mysql漏洞利用,我决定在我的页面顶部使用这个函数,因此所有POST都是安全的:你能告诉我,如果我错过了一些东西,这个函数真的能完成我的工作吗认为会吗?

function clean_post(){
    if ( $_POST){
            foreach ($_POST as $k => $v) {
            $_POST[$k]=stripslashes($v);
            $_POST[$k]=mysql_real_escape_string($v);
            $_POST[$k]=preg_replace('/<.*>/', "", "$v");
        }
  }

  if ( $_COOKIE){
            foreach ($_COOKIE as $k => $v) {
            $_COOKIE[$k]=stripslashes($v);
            $_COOKIE[$k]=mysql_real_escape_string($v);
            $_COOKIE[$k]=preg_replace('/<.*>/', "", "$v");
        }
  }
}
Run Code Online (Sandbox Code Playgroud)

它还将删除所有html标记,输出结果的最安全选项可能是使用:

<pre>
  $foo 
</pre> 
Run Code Online (Sandbox Code Playgroud)

干杯!

干杯!

Mar*_*ers 10

我认为这样做是个坏主意.它会破坏用户在访问数据库之前输入的数据.这种方法还会鼓励您使用延迟编码,因为您始终认为所有数据都已"干净".有一天当你需要输出一些不安全的角色而你忘记逃脱它们或者你不确定你需要调用哪个函数这样你只是尝试一些东西并希望它有效时,这将会回来咬你.

要正确地执行它,您应该确保禁用魔术引号,并且只在必要时使用正确的转义方法转义数据 - 不多也不少.

  • @Eray Alakese:我的观点是他很可能会使用这个清理功能*而不是正确地转发数据.我认为这是一个危险的习惯. (2认同)