htmlspecialchars和mysqli_real_escape_string之间的区别?

Nae*_*hab 6 php mysql

我在PHP书中读到,当我们处理用户输入的数据时,使用htmlspecialcharsmysqli_real_escape_string处理条件是一个好习惯.这两者之间的主要区别是什么,它们适合使用?请指导我.

EGO*_*rds 8

htmlspecialchars:"<"到"<" (取代HTML代码)

mysqli_real_escape_string:"to \"(替换代码,在mysql查询中有意义)

两者都用于防止SQL-Injection和XSS等攻击


Sha*_*ali 6

这两个函数用于完全不同的东西.

htmlspecialchars()将特殊HTML字符转换为实体,以便可以毫无问题地输出它们.mysql_real_escape_string()可以转义敏感的SQL字符,因此可以执行动态查询而不会有SQL注入的风险.

您可以很容易地说htmlspecialchars处理敏感的OUTPUT,而mysql_real_escape_string处理敏感的INPUT.

夏嘉曦


Jon*_*Jon 5

这两个功能在目的上完全无关;它们共享的唯一属性是它们通常用于为 Web 应用程序提供安全性。

mysqli_real_escape_string旨在提供针对SQL 注入的安全性。

htmlspecialchars 旨在提供针对跨站点脚本(XSS)的安全性。

另请参阅使用 PHP 清理用户输入的最佳方法是什么?htmlspecialchars 和 mysql_real_escape_string 是否可以防止我的 PHP 代码被注入?