此SQL清理代码的说明

Yvo*_*nne 2 php sql code-injection

我从登录表单教程得到了这个:

function sanitize($securitystring) {
        $securitystring = @trim($str);
        if(get_magic_quotes_gpc()) {
            $securitystring = stripslashes($str);
        }
        return mysql_real_escape_string($securitystring);
    }
Run Code Online (Sandbox Code Playgroud)

有人可以解释这究竟是什么吗?我知道之后会打电话给'干净'的var来消毒田地; 即$email = sanitize($_POST['email']);

Moo*_*eld 5

基本上,如果你打开了魔术引号,POST/SESSION数据中的特殊字符将自动转义(与将addslashes()应用于字符串相同).MySQL转义函数优于PHP的addslashes()(虽然我不记得确切的原因).

您的代码所做的是检查php.ini文件是否启用了魔术引号,如果是,则从数据中删除斜杠,然后使用MySQL函数对其进行重新清理.如果未启用魔术引号,则无需删除斜杠,因此只需使用MySQL函数对数据进行清理并返回.