php - 我还应该用 mysqli 清理输入吗?

标签 php

我正在使用 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/

相关文章:

php - 使用特定连接的 Laravel 原始查询

PHP/MySQL 使用长查询检查表之间的数据

php - Laravel 在一个函数中加载多个 View

php - 使用 PHP 有条件地在 header 中记录值

php - 如何在 PHP 中使用登录 cookie 连接用户?

PHP:将相对 img src url 转换为绝对

php - 限制提交许多请求Ajax php表单

php - Javascript 的行为与 PHP 包含文件不一致

php - 包括/要求路径解析

php - yii2 中每个页面标题中的登录表单