javascript - 禁用 JavaScript 时的 XSS 利用

标签 javascript xss

试图让 McAffee 白名单成为我工作的网站上的假定漏洞,我感到非常沮丧。问题是他们的自动化系统检测到一个假设的 XSS 漏洞,但漏洞仅在 JavaScript 被禁用时才存在。鉴于您需要禁用 JavaScript 才能存在漏洞利用,那么这肯定意味着这不是漏洞利用。谁能想到任何可能的相反论据?

更新 - 添加更多细节:

问题来自一个地方,未清理的 URL 内容被写入 anchor 标记 href。因此,在禁用 JS 的情况下,您可能会遇到这样的事情:

<a href="foor.php?"><script>alert('foo')</script>#someanchor" ..

启用 JavaScript 后,此 href 将更新为(准备好 dom):

<a href="javascript:;">link</a>

因此,在启用 JS 的情况下不再注入(inject)链接,在禁用 JS 的情况下警报将不再执行。

最佳答案

您需要更改您的页面。

<a href="default_for_javascript_disabled" id="speciallink">link</a>

<script type="text/javascript">
    var link = document.getElementById("speciallink");
    link.href = "value_for_javascript_enabled";
</script>

关于javascript - 禁用 JavaScript 时的 XSS 利用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973551/

相关文章:

javascript - 如何通过注入(inject)脚本修改/扩展 javascript 函数?

javascript - 反射型 XSS 保护 - 澄清吗?

web-services - Angular2 ASP.NET Core AntiForgeryToken

javascript - 多个 tcp 连接尽管有 http-alive

javascript - Redux saga 使用类的其他实例的参数

php - 在 php 中解决跨站点脚本 (XSS) 的最佳方法/实践?

c# - 为 Controller Action 参数创建过滤属性抗XSS攻击

javascript - 如何访问路由内的 Emberjs 模型数据

javascript - 在 AVA 测试中使用 webpack 别名

javascript - 使用带有 webpack javascript 的 firebase 托管