gpt4 book ai didi

PHP 过滤器 vs PHP htmlspecialchars vs sqli 准备

转载 作者:行者123 更新时间:2023-12-02 04:29:30 24 4
gpt4 key购买 nike

我一直很好奇上述预防 SQL 注入(inject)的方法的优点/缺点。

PHP 过滤器只是检查输入的格式是否正确并返回 true 或 false,您可以选择是否发送到服务器。

PHP htmlspecialchars() 函数将特殊字符转换为等效字符串。

我不完全确定 sqli 准备是如何工作的,因为我现在对 sql 的了解有限,但是如果您使用 PHP 过滤器函数和/或 htmlspecialchars 则没有必要,我的假设是否正确?

请注意:如果我全都错了,请保持积极的建设性,我仍在学习 PHP 和 SQL。

最佳答案

你提到的三件事是完全不同的,只有一件事与SQL注入(inject)有关。

  • 正如你所说,过滤器用于验证输入;例如,确保某人没有在电子邮件地址字段中输入电话号码。它们通常与安全无关,而与您需要的数据有关。
  • htmlspecialchars转义文本以便在 HTML 中使用,这确保人们无法欺骗您的网站输出 <script>例如,标签。始终仅针对您使用数据的上下文对数据进行转义非常重要,因此您永远不应该将 HTML 转义文本存储在数据库中,并且在实际输出 HTML 时始终对其进行转义。
  • 准备好的参数化语句可以有效防范 SQL 注入(inject)。我们的想法不是转义每个字符串以防止其作为 SQL 运行,而是通过将查询发送到带有动态数据所在位置的占位符的数据库,将查询与数据完全分离。由于数据库知道您传递来“填充”占位符的值是数据,因此攻击者无法欺骗它运行与输入混合的额外 SQL。

关于PHP 过滤器 vs PHP htmlspecialchars vs sqli 准备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24340980/

24 4 0
文章推荐: Html 5 <footer> 与
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com