html值属性中的htmlspecalchars是否足以阻止xss?

时间:2014-10-17 09:33:19

标签: php html xss

htmlspecialchars()是一种防止XSS HTML元素属性htmlspecialchars()攻击风险的万无一失的方法吗?

例如,在此输入元素中,使用<input type="text" value="<?php echo htmlspecialchars($dangerousString, ENT_QUOTES, 'UTF-8'); ?>" 编码引号也能确保完全安全吗?

从逻辑上讲,它会阻止任何字符串突破value属性的上下文;或者还有更多可以做的事情吗?

{{1}}

1 个答案:

答案 0 :(得分:1)

假设您正在使用现代版本的php,htmlspecialchars应该可以解决问题。

值得注意的是,您还必须通过标头和元标记为整个页面提供相同的编码(utf8)。否则,您需要UTF-7 injection

另请注意,htmlspecialchars仅适用于value这样不能解释javascript的属性。 <{1}}和朋友