html - 避免使用像 <pre> 这样的 HTML 标签的 XSS

标签 html tags xss pre

我有一个简单的网页,它获取查询项并将它们制作到页面中。 示例网址:

http://quir.li/player.html?media=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0VqTwnAuHws

页面然后在页面的某处显示 URL:

<span id="sourceUrlDisplay">http://www.youtube.com/watch?v=0VqTwnAuHws</span>

我觉得这会使页面容易受到 XSS 攻击,以防页面加载的 URL 包含类似于

http://quir.li/player.html?media=<script>alert('test')</script>

我发现,将 URL 呈现为 <pre>标签没有帮助。 是否有一个简单的解决方案,比如一个 HTML 标签,其内容实际上不被解释而只是被打印出来?

注意:这个问题有点similar to this one , 但更一般。

最佳答案

不,在 HTML 中没有这样的标签可以防止 XSS 攻击,也不可能制作一个。让我们假设有这样一个标签,比方说,<safe> .攻击者只需要关闭它:</safe><script> malicious code </script><safe> .

在这种特定情况下阻止 XSS 的方法是将特殊字符转义为其 URL 编码对应物,以便 http://quir.li/player.html?media=<script>alert('test')</script>变成 http://quir.li/player.html?media=%3Cscript%3Ealert('test')%3C%2Fscript%3E .

关于html - 避免使用像 <pre> 这样的 HTML 标签的 XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158252/

相关文章:

php - 输入字段自动填充空格和突出显示问题

php - Laravel 5 将 HTML 添加到电子邮件

tags - 使用 cucumber 从特征文件中获取标签

mysql - 如何为具有多个标签的标签系统创建sql查询?

javascript - jsf 命令按钮中的 onclick 在 chrome 中不起作用

javascript - 如何在 blur/focusOut 后重置 div w Contenteditable

html - TH 内的 IE7 Angular 落

html - 从 url 收集有关公司的一组描述性标签的最佳方法?

javascript - 仅在 FireFox 18 上引发 XSS 异常

security - 反射(reflect)跨站点脚本的可能的攻击媒介是什么?