PHP安全功能


PHP security function

我做了一个简单的函数来防止SQL注入和XXS的安全这是我的代码,对此有什么建议吗?这对安全性来说足够好吗?

function mres($input){
    if(get_magic_quotes_gpc()){
        $input=stripslashes($input);    
    }
    $input=htmlentities($input, ENT_COMPAT, 'UTF-8');
    return mysql_real_escape_string($input);
}

至少在两个方面是错误的:

  1. 如果可以的话,完全magic_quotes转。 至少你没有使用它,但$input可能不是标量
  2. htmlentities用于显示,而不是存储。 切勿为存储而编码!
  3. mysql_*函数已弃用。 也不能保证您在调用时将具有打开的 mysql 连接(必需)。

http://us3.php.net/manual/en/function.mysql-real-escape-string.php

看看你实际上在做什么:

魔术报价是所有传入数据的批量转义,这使您容易受到攻击,因为仅靠转义并不能使您的数据以任何方式"安全"。

所以,你正在清理这些散装逃生......然后再次应用完全相同的转义:)