我正在使用 mysqli 准备好的语句。我是否仍应使用以下功能清理用户输入:
function sanitise($string){
$string = strip_tags($string); // Remove HTML
$string = htmlspecialchars($string); // Convert characters
$string = trim(rtrim(ltrim($string))); // Remove spaces
$string = mysql_real_escape_string($string); // Prevent SQL Injection
return $string;
}
谢谢。
最佳答案
不!不,不。如果您已经在使用准备好的语句,MySQL 需要查看该值,而不是它的某些转义版本。如果您将 mysql_real_escape_string
添加到一个字符串并使其成为准备好的语句的值,那么您就把它当作垃圾了,例如,引号会加倍!
现在,至于数据清理,这完全取决于关于什么是或不是有效输入的业务规则。在您的示例中, strip_tags 更多的是关于 html-> 原始(格式)转换而不是卫生。 rtrim(ltrim
- 这是一个业务转型。
关于php - 我还应该用 mysqli 清理输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240014/