对于跨site_scripting漏洞验证不受信任的HTML输入是否必须处理每个输入?
1)它来验证和逃生的用户输入
2)每一个好主意,用strip_tags的不够好,什么是htmlpurifier在它的好处?
对于跨site_scripting漏洞验证不受信任的HTML输入是否必须处理每个输入?
1)它来验证和逃生的用户输入
2)每一个好主意,用strip_tags的不够好,什么是htmlpurifier在它的好处?
是的,这是一个好主意。我会尽可能地说,如果你不是你是白痴。将数据存储在数据库中时使用prepared statements and bound parameters。如果你使用这个(就像你应该那样),你不需要手动转义进入数据库的数据。
现在显示数据取决于您想要允许的以及要输出的位置。如果它将显示在HTML页面上,并且您不想允许任何HTML呈现,请使用htmlspecialchars($content, ENT_QUOTES)
。你几乎不需要使用htmlentities
,因为它会转换所有有HTML实体的字符。这意味着它会让你的文件变得没有必要变大如果你想允许一些HTML,你必须在显示它之前过滤它(使用HTML净化器)。
请注意,不同的存储机制和不同的输出介质需要不同的转义/消毒策略。
+1,在不同的存储需要不同的转义策略的情况下?我想如果你使用的是数据库,则不需要转义。 –
例如,如果您要发送电子邮件而不是存储在数据库中,则必须注意标题注入。 – PeeHaa
1.是的。 2.始终使用服务器端验证('mysqli_real_escape_string()'和其他类似的方法)(js验证是好的,它可以绕过) –