javascript - 通过shadow root进行突破注入(inject)

标签 javascript shadow-dom javascript-injection html-injections

我不是 JS 程序员。我自己没有足够的能力来测试它,所以寻求帮助。 是否可以将脚本或HTML标签注入(inject)shadow_root元素来检查网络上的漏洞?

例如<script>alert("alert");</script>

也许可以使用 <content> 之类的其他东西?

主要问题:可能吗?

还有一个问题:如何?

最佳答案

根据我在评论中发现的内容,您想知道您的用户是否可以在您的网站页面中注入(inject)代码。答案是肯定的,用户拥有玩弄眼前 DOM 的所有权利。最简单的方法是打开您最喜欢的浏览器的开发人员工具。

自己动手...在此处打开开发人员工具窗口,到达控制台并编写

document.write("<script>alert(\"alert\");</script>");

如您所见,您甚至可以直接在 StackOverflow 上更改任何内容。但这绝对不会对其他人造成伤害,只会对你造成伤害。虽然你可以这样做,但这确实意味着它根本不安全!只是您的浏览器可以完全控制它接收到的内容......

现在,问题应该是如何检测应用程序中此类注入(inject)可能有害的可能点。

答案很简单,永远不要相信客户端的输入。服务器应始终验证输入,并确保不可能进行数据库注入(inject)。显示用户提供的内容时,还应确保查看网页的用户的浏览器不会运行隐藏的代码标记。

StackOverflow 不适合这种知识共享。我建议您阅读有关网站安全的一般信息,然后查找与您的技术堆栈以及用户输入的使用情况相关的更深入的资源。

此外,如果您提出此要求是为了完成一项真正的工作任务,那么您已经得到了。最重要的事情是告诉你的经理你不适合这项任务。不是因为你缺乏才华,而是因为你缺乏知识。这表明你足够聪明,认为这项任务非常重要(安全非常重要),并且你不愿意拿公司的声誉开玩笑。

参见workplace.stackexchange.com如果您想知道如何最好地向上级解释这一点。

关于javascript - 通过shadow root进行突破注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46642503/

相关文章:

javascript - 嵌套 View 在 Ionic 中变为空白

javascript - 防止用户操纵 REST URL

java - 如何使用 GWT ScriptInjector 仅注入(inject)一次脚本?

javascript - 防止 Javascript 中的 HTML 和脚本注入(inject)

javascript - jQuery 选择 :last-child of container

javascript - 允许制表符的angularjs指令

javascript - 尽管打开,但 ShadowRoot 属性为 null

html - 如何将常见的 CSS 类应用于阴影元素?

javascript - 使用 jQuery 切换?

html - 当主 dom 包含一个类时如何更改 shadow Dom 中元素的 css