Php 我是否应该将ENT_引号与htmlspecialchars一起使用

Php 我是否应该将ENT_引号与htmlspecialchars一起使用,php,xss,sanitization,Php,Xss,Sanitization,我使用的是以UTF-8运行的PHP5.4.4,我不确定我是否正确使用了htmlspecialchars 我的字符串/变量如下所示: $text = "<p><span class='clx'>By:</span> ".htmlspecialchars($foo)."</span></p>"; echo $text; $text=“作者:”.htmlspecialchars($foo)。“”; echo$文本; 我是否需要使用ENT\

我使用的是以UTF-8运行的PHP5.4.4,我不确定我是否正确使用了htmlspecialchars

我的字符串/变量如下所示:

$text = "<p><span class='clx'>By:</span> ".htmlspecialchars($foo)."</span></p>";
echo $text;
$text=“作者:”.htmlspecialchars($foo)。“

”; echo$文本;
我是否需要使用
ENT\u引号
,还是只有在我必须回显某些内容时才需要使用

内部示例:
href=“$foo”或id='$foo'

Atm、om仅在封闭的html标记中使用htmlspecialchars,而不使用属性

只需在
标记和

标记内连接字符串内的var即可


谢谢

当您从数据库获取数据并将其插入html元素时,通常应该使用它。这是为了使数据中的引号不会关闭值引号并弄乱html。

简短回答:始终

详细回答:我强烈建议阅读OWASP的

OWASP前5名涵盖了当前困扰PHP的五个最严重和最常见的安全漏洞:

  • 远程代码执行
  • 跨站点脚本(XSS)[htmlspecialchars试图阻止的一个]
  • SQL注入
  • PHP配置
  • 文件系统攻击

它展示了常见的错误和解决方案,值得任何PHP开发人员阅读,即使他们考虑托管一个实时网站。

除了其他html实体之外,您还应该在任何时候使用它来编码引号。为了澄清这一点,没有关于何时使用函数/参数的既定规则。唯一的答案是,在你需要的时候使用它。谢谢,我在XSS上使用它,我在我的第一个代码片段上使用它吗$text=因为我没有在任何属性中插入数据,只是在打开/关闭标记之间插入,所以你做得对。第一个例子中不需要引用ENT_。谢谢,现在就知道了:)谢谢链接!真有用