这是安全/强大的输入清理功能吗?

发布于 2024-09-17 08:10:06 字数 395 浏览 12 评论 0原文

这是我最近学到的一本书中使用的清理函数 - Sams Teach Yourself Ajax, JavaScript和 PHP 一体化

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

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

This is the sanitization function used in a book I recently learned from - Sams Teach Yourself Ajax, JavaScript, and PHP All in One.

I've been using it on my own PHP site. Is it safe for real-world usage?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

揽清风入怀 2024-09-24 08:10:06

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

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

因此,我将使用 mysql_real_escape_string() 进行查询,并使用 htmlspecialchars() 来回显用户提交的字符串。还有很多事情需要了解。做一些进一步阅读

I would say that is too general. It may be safe for a lot of uses, but it would often give unwanted side affects to strings. Not every string should be escaped like that.

  • mysql_real_escape_string() should be used within SQL queries only. Better still, bind params with PDO.
  • Why would you want to blanket strip tags and encode entities before inserting into a database? Maybe do it on the way out.
  • For XSS prevention, htmlspecialchars() is more of your friend. Give it the character set as an argument.

So I would use mysql_real_escape_string() for queries, and htmlspecialchars() for echoing user submitted strings. There is also a lot more to know. Do some further reading.

逆光飞翔i 2024-09-24 08:10:06

您还可以考虑将 filter-input 与这些 过滤器应用于此范围

You can also consider filter-input with those filters applied to this scope.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文