今天早些时候有人问了一个关于inputvalidationstrategiesinwebapps的问题。.在撰写本文时,最佳答案建议在PHP中仅使用htmlspecialchars和mysql_real_escape_string。我的问题是:这样就够了吗?还有更多我们应该知道的吗?这些功能在哪里分解? 最佳答案 当涉及到数据库查询时,请始终尝试使用准备好的参数化查询。mysqli和PDO库支持这一点。这比使用mysql_real_escape_string等转义函数要安全得多。是的,mysql_real_escape_string
显然,这比我想象的要难找到。它甚至是那么简单……有没有相当于PHP的htmlspecialchars的函数内置在JavaScript中?我知道自己实现这一点相当容易,但使用内置函数(如果可用)会更好。对于那些不熟悉PHP的人,htmlspecialchars可以翻译之类的内容。进入<htmltag/>我知道escape()和encodeURI()不要这样工作。 最佳答案 您的解决方案代码存在问题-它只会转义每个特殊字符的第一次出现。例如:escapeHtml('Kip\'sevil"test"code\'shere');
我通过PHP回显发送一个XML文档来响应AJAX调用。为了形成这个XML文档,我遍历了数据库的记录。问题是数据库中包含有“ 最佳答案 从PHP5.4开始,您可以使用:htmlspecialchars($string,ENT_XML1);你应该指定编码,例如:htmlspecialchars($string,ENT_XML1,'UTF-8');更新注意以上只会转换:&至&至<>至>如果您想转义文本以用于用双引号括起来的属性:htmlspecialchars($string,ENT_XML1|ENT_COMPAT,'
我通过PHP回显发送一个XML文档来响应AJAX调用。为了形成这个XML文档,我遍历了数据库的记录。问题是数据库中包含有“ 最佳答案 从PHP5.4开始,您可以使用:htmlspecialchars($string,ENT_XML1);你应该指定编码,例如:htmlspecialchars($string,ENT_XML1,'UTF-8');更新注意以上只会转换:&至&至<>至>如果您想转义文本以用于用双引号括起来的属性:htmlspecialchars($string,ENT_XML1|ENT_COMPAT,'
htmlspecialchars()和htmlentities()有什么区别。我应该什么时候使用其中一种? 最佳答案 htmlspecialchars可以使用:当不需要对具有其HTML等效项的所有字符进行编码时。如果你知道页面编码匹配文本特殊符号,你为什么要使用htmlentities?htmlspecialchars非常简单,并且产生更少的代码发送给客户端。例如:echohtmlentities('.');//Output:<Ilétaitunefoisunêtre>.//^^^^^^^^^^
htmlspecialchars()和htmlentities()有什么区别。我应该什么时候使用其中一种? 最佳答案 htmlspecialchars可以使用:当不需要对具有其HTML等效项的所有字符进行编码时。如果你知道页面编码匹配文本特殊符号,你为什么要使用htmlentities?htmlspecialchars非常简单,并且产生更少的代码发送给客户端。例如:echohtmlentities('.');//Output:<Ilétaitunefoisunêtre>.//^^^^^^^^^^