我想过滤我的输出,使其更安全的跨站点脚本(XSS)攻击,所以我用htmlentities过滤输出.问题是,我试图使我的应用程序utf8兼容,所以当我输入类似ಠ_ಠ的东西时,我希望在从数据库中检索时进行维护.有没有简单的解决方案来实现这一目标?提前感谢任何建议.
三件事
HTML清理是输出转义任务,而不是输入过滤.你应该不是在存储之前做这个任务,你应该只做到这一点显示之前.
如果您试图阻止XSS,则不需要使用htmlentities()
- htmlspecialchars()
就足够了.htmlentities()
仅在尝试从与本机编码不同的字符编码中呈现内容时使用.
两个 函数都接受字符编码作为第三个参数.
所以,最后:
echo htmlspecialchars( $content, ENT_QUOTES, 'UTF-8' );
如果您使用ENT_NOQUOTES,则可能容易受到某些类型的XSS攻击.