gpt4 book ai didi

php - 对 htmlspecialchars、real_escape_string 等感到困惑

转载 作者:行者123 更新时间:2023-11-29 03:07:25 25 4
gpt4 key购买 nike

我编写了一个不错的管理界面,其中包括库存管理、内容管理和博客。现在是时候将其锁定并确保其安全(是的,我应该从一开始就这样做......

对于博客创建/编辑,我使用的是将 HTML 输出发布到 editblog.php 的 ckeditor。我还为标题、作者等使用了简单的文本输入...

我很担心,因为博客将有 img src="uploads/etc.jpg",以及 div、span 等...

所以!当我清理这些数据时,我如何确保所有这些引号和斜线都可以安全地插入我的 SQL 数据库,我该怎么做才能将它吐回前端?我也很担心,因为如果博主“引用”了一些东西,我也不希望它被搅乱。

简单的输入,如标题、作者等我正在使用 $title = mysqli_real_escape_string($title)但这就够了吗?如何在避免攻击的同时保留用户的预期输入?

我已经做了我的研究,但我还是不明白。我希望有人能为我把它分解得又好又简单......

最佳答案

漂亮又简单...

您始终对要写入的上下文进行清理。

这些技术将保留用户的输入,但防止该输入被解释为特定上下文中的代码。

当你想查询数据库时,担心SQL注入(inject)攻击:

  • 使用 mysql_real_escape_string 为数据库查询清理 SQL。

当您想显示将被浏览器解析的内容(如 HTML)时,您担心跨站点脚本:

  • 使用 htmlspecialchars 净化 HTML 输出。

这将提供基本级别的安全性。

  • 为了提高数据库方面的安全性,您应该查看准备好的语句 和 PHP PDO
  • 关于 htmlspecialchars 的一些陷阱的更多信息,请查看@Cheekysoft 的精彩解释:htmlspecialchars and mysql_real_escape_string

关于php - 对 htmlspecialchars、real_escape_string 等感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com