对于跨站点脚本漏洞
1)验证和转义每个用户输入
是个好主意2)使用strip_tags足够好了,htmlpurifier的好处是什么呢?
答案 0 :(得分:0)
是的,这是一个好主意。我会尽量说你不是白痴。将数据存储在数据库中时,请使用prepared statements and bound parameters。如果你使用它(就像你应该的那样),你不必手动转义进入数据库的数据。
现在,为了显示数据,它取决于您想要允许的内容以及您要将其输出的位置。如果它将显示在HTML页面上,并且您不希望允许使用htmlspecialchars($content, ENT_QUOTES)
呈现任何HTML。您几乎不必使用htmlentities
,因为这将转换具有HTML实体的所有字符。这意味着它会使您的文档变得更大。如果你想允许一些HTML,你必须在显示之前对其进行过滤(使用HTML净化器)。
请注意,不同的存储机制和不同的输出媒体需要不同的转义/清理策略。