我是否应该使用ENT_QUOTES和htmlspecialchars

时间:2014-01-16 20:15:32

标签: php xss sanitization

我使用php 5.4.4作为UTF-8运行,我不确定我是否正确使用htmlspecialchars。

我的字符串/ vars看起来像这样:

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

我是否需要使用ENT_QUOTES,或者只有当我必须回应某些内容时才需要

内部例如:href="$foo" or id='$foo'

Atm,om只在封闭的html标签内使用htmlspecialchars而不是属性。

只需在<p>代码和</p>代码中连接字符串内的var

由于

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

简短回答:永远。

答案很长:我强烈建议您阅读OWASP的PHP Top 5PHP Security Cheat Sheet

OWASP Top 5涵盖了今天困扰PHP的五个最严重和最常见的安全漏洞:

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

它演示了常见的错误和解决方案,对于任何PHP开发人员来说都非常值得一读,甚至考虑托管一个实时网站。