Php htmlspecialchars和mysqli\u real\u escape\u字符串之间的区别?

Php htmlspecialchars和mysqli\u real\u escape\u字符串之间的区别?,php,mysql,Php,Mysql,我在一本PHP书中读到,在处理用户输入的数据时,使用htmlspecialchars和mysqli\u real\u escape\u string是一种很好的做法。这两者之间的主要区别是什么?它们适合在哪里使用?请指导我。这两个功能用于完全不同的事情。 htmlspecialchars()将特殊HTML字符转换为实体,以便可以毫无问题地输出它们。mysql\u real\u escape\u string()会转义敏感的SQL字符,因此可以执行动态查询,而不会有SQL注入的风险 您可以很容易地

我在一本PHP书中读到,在处理用户输入的数据时,使用
htmlspecialchars
mysqli\u real\u escape\u string
是一种很好的做法。这两者之间的主要区别是什么?它们适合在哪里使用?请指导我。

这两个功能用于完全不同的事情。

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

您可以很容易地说htmlspecialchars处理敏感的输出,而mysql_real_escape_string处理敏感的输入


Shai

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

mysqli\u real\u escape\u string
旨在提供安全防范

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


另请参见和

htmlspecialcharacters将“html特殊字符”转换为代码,例如引号(单引号和双引号)、符号和小于/大于符号。此功能通常用于确保网站上发布的内容用户没有HTML标记或XSS脚本


mysql\u real\u escape\u string转义字符串,这意味着它会在斜杠、引号(单引号和双引号)以及其他任何可能扰乱mysql查询的内容之前添加\。此函数可确保没有人在服务器上执行SQL命令并从数据库获取信息。

htmlspecialchars:"我可以补充一点吗,现在真正高级的PHP web程序员不再手工进行用户输入验证了,因为它容易出现一些可能的谬误,而是通常选择一些PHP框架,比如CakePHP或CodeIgniter,它们只需几行代码就可以进行用户输入验证,甚至更多?

可能的重复,您能解释一下吗用一个example@TheNoble-编码器:看看我链接到的问题。另外,谷歌是你的朋友。你能用一个例子解释一下吗?我想@EGOrecords已经解释过了。此外,我建议您阅读本手册,因为它包含了所有必要的示例:,请您用一个示例HTMLSpecialChars(“ä”==”<;b<;<;<;ä;<;/b&gr;“mysql\u real\u escape\u string(“)[想象一下周围的qoutes]==”,你能不能用一个例子来解释一下真正的高级PHP程序员并不是因为不知道该防御什么和如何防御而变得高级的。手动消毒输入不会出错,除非您误用消毒设施。我是否可以补充一点,滥用上述设施可能会发生,无论它们被称为
htmlspecialchars
或“框架助手”。据我所知,这并不是一个坏主意,我刚才说过,用户输入验证最好使用PHP老手开发的框架中经过充分验证和修改的函数,而不是定制函数。所以我认为框架助手是一个不错的选择,但愿上帝不会不知道htmlspecialchars是如何工作的!