是否有必要转义存储过程的参数?

时间:2010-03-09 18:28:29

标签: php mysql stored-procedures mysqli escaping

或者在这种情况下不需要调用real_escape_string()? /电子邮件值来自用户输入./

function findUser($email)  
{   
    $mysqli = connectDB();  
    $email = $mysqli->real_escape_string($email);  
    $query = "CALL FindUser('{$email}')";  
    // ...  
}  

2 个答案:

答案 0 :(得分:1)

您只是构建一个包含过程调用的动态SQL字符串,该过程调用可能会受到攻击。只要在过程中不使用动态SQL,就应该将参数绑定到过程,这样可以提供一些保护。

mysqli_stmt::bind_param

Bound Parameters

答案 1 :(得分:1)

是的,您仍然需要将其转义,存储过程与常规查询一样容易受到攻击。

相关问题