1

对于 Cross-site_scripting 漏洞

1)验证和转义每一个用户输入是否是个好主意

2)使用 strip_tags 是否足够好,htmlpurifier 对它有什么好处?

4

1 回答 1

0

是的,这是个好主意。如果你不这样做,我什至会说你是个白痴。在数据库中存储数据时,使用准备好的语句和绑定参数。如果您使用它(就像您应该使用的那样),您不必手动转义进入数据库的数据。

现在要显示数据,这取决于您要允许的内容以及要输出的位置。如果它将显示在 HTML 页面上,并且您不想允许呈现任何 HTML,请使用htmlspecialchars($content, ENT_QUOTES). 您几乎不必使用htmlentities,因为这将转换所有存在 HTML 实体的字符。这意味着它会使您的文档变得不必要的更大。如果要允许某些 HTML,则必须在显示之前对其进行过滤(使用 HTML 净化器)。

请注意,不同的存储机制和不同的输出媒体需要不同的转义/清理策略。

于 2013-09-01T02:38:49.077 回答