javascript - 如何解决 href 标签中的 XSS 漏洞?
问题描述
我刚刚开始使用 Web 应用程序扫描程序来查看我的 Web 应用程序有哪些漏洞,并且得到的结果显示了 href 标记中的 xss 漏洞。
例如,可以将警报脚本推送到以下 url 的 href 中:
<a href="/contextroot/servlet.do?"><script>alert(81)</script>page=1">2</a>
这只是一个用户可以在不同结果表之间分页并通过 java TagSupport 动态添加到 jsp 的位置。
我曾尝试使用 javascript 调用交换此 href 位置,但漏洞仍然存在。我开始怀疑这里的 xss 缺少一些基本的东西。有没有办法格式化这个标签,使其不易受到 xss 的攻击?任何资源来解释发生了什么?我试过在没有大量运气的情况下进行研究......
解决方案
这听起来像是反射型 XSS的典型案例。
最有可能的是,服务器读取 url 参数,而不转义它们,并直接注入 DOM。然后它将 DOM 提供给用户,从而导致可以将任意脚本注入 DOM 的行为。
解决方案:服务器应在将查询参数注入 DOM 之前对其进行转义/清理。
PS。不太可能,但也可能是客户端(即 JavaScript)提取查询参数并将它们注入 DOM。
推荐阅读
- databricks - 我的文件系统名称和存储帐户名称是什么?我如何找到它?
- python - Tensorboard (PyTorch) add_graph 中的错误
- msbuild - msbuild 在 openSUSE Tumbleweed 上找不到 MSBuild.dll
- javascript - 关于 JavaScript 中变量的快速菜鸟问题
- mysql - 为什么我的 docker-entrypoint-initdb.d 脚本(在 docker-compose.yml 中指定)没有被执行来初始化一个新的 MySQL 实例?
- python - 字典命令的字符串参数错误
- javascript - reactjs编译错误'e'在特定场景下是未定义的no-undef
- python - 数组迭代如何与“and”一起工作?
- c# - C# Dapper & MySQL 随机错误,即致命错误/从流中读取失败等
- python - 对于联系我们的网站,django 是否矫枉过正?