htmlspcialchars($user_data)
PHP 或Ruby on Rails是否h(user_data)
足以防御所有 XSS(跨站点脚本)攻击?使用的编码或任何其他可能的考虑因素如何?
问问题
2883 次
3 回答
4
htmlspecialchars
和转义h
所有可能在 HTML 中具有特殊含义的字符,没有办法将文字 HTML 注入目标页面。
但是,有一些方法可以执行(危险的)Javascript,而不需要 HTML 注入。例如,如果您有一个转换[img http://example.com/img.jpg]
为的应用程序<img src="http://example.com/img.jpg/>
,想象一下如果用户输入 会发生什么[img javascript:alert(document.cookies);]
。转义 HTML 字符不会将您保存在这里,您必须清理给定的 URL。这是一个相当全面的可能的 XSS 漏洞示例列表。
如果您始终使用htmlspecialchars
/h
并且始终完全清理用作任何 HTML 元素中的属性值的用户输入,那么您就有了适当的 XSS 防御。
于 2009-05-14T07:55:43.063 回答
1
一般来说,存在三种不同类型的 XSS:基于 DOM 的、非持久的和持久的。
现在服务器端语言只能防止后两种(非持久性和持久性),因为第一种只发生在客户端。
于 2009-05-14T07:49:35.417 回答
0
如果您不允许在帖子中使用 HTML 标签,您也可以尝试使用 strip_tags。还可以查看html 净化器
于 2009-05-14T07:55:01.690 回答