【问题标题】:Is this a safe/strong input sanitization function?这是一个安全/强大的输入清理功能吗?
【发布时间】:2011-04-05 13:46:49
【问题描述】:

这是我最近从-Sams Teach Yourself Ajax, JavaScript, and PHP All in One 学到的一本书中使用的清理功能。

我一直在我自己的 PHP 网站上使用它。实际使用是否安全?

function sanitizestring($var)
{
  $var = strip_tags($var);
  $var = htmlentities($var);
  $var = stripslashes($var);
  return mysql_real_escape_string($var);
}

【问题讨论】:

  • 这本书确实很糟糕。作者一点头绪都没有。如果这本书的其余部分都是一样的,那么你将得到的不是知识而是无知。
  • 我在问题中提到了错误的书。但公平地说,作者没有指定该函数是通用函数还是通用函数。而对于一本初学者的书,我也不指望成为php大神。我愿意接受建议:)

标签: php mysql sanitization


【解决方案1】:

您也可以考虑将filter-inputfilters 应用于此scope

【讨论】:

    【解决方案2】:

    我会说这太笼统了。它可能对于很多用途是安全的,但它通常会给字符串带来不必要的副作用。不是每个字符串都应该这样转义。

    • mysql_real_escape_string() 只能在 SQL 查询中使用。更好的是,将参数与 PDO 绑定。
    • 为什么要在插入数据库之前覆盖剥离标签和编码实体?也许在出去的时候做。
    • 对于 XSS 预防,htmlspecialchars() 更像是您的朋友。将字符集作为参数给它。

    所以我会使用mysql_real_escape_string() 进行查询,使用htmlspecialchars() 回显用户提交的字符串。还有很多要知道的。做一些further reading

    【讨论】:

      猜你喜欢
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2014-11-27
      • 2011-09-16
      • 2014-06-06
      • 2011-05-12
      相关资源
      最近更新 更多