xss - 绑定事件

xss - binding events

在我的网站上使用 Button1,我可以通过开发工具控制台向它添加一个事件 (el = document.getElementById("Button1"); el.addEventListener("click", someFunction);).有没有办法让我的网站更安全,以便在网站发布后无法添加事件。谢谢!

没有

到达浏览器后,页面处于浏览器的控制之下。

浏览器为用户服务,而不为页面作者服务。

恕我直言,无法禁用开发工具。

您应该考虑到 DOM 可能已被操纵并为此增加安全性。特别是你的后端不应该盲目地信任传入的请求。不仅仅针对 XSS。

以防万一您仍然对此感到担心,您需要记住,一旦用户打开您的网站,他只有一个本地副本。他可以做任何他想做的事,比如添加按钮,添加脚本,他甚至可以把它变成一个非法网站,但这仍然没有关系,因为它只是一个本地副本,所以他是唯一一个有这些变化的人,而且作为只要他刷新网站,所有这些变化就会消失。

如果你想要一个例子,你甚至可以用开发工具修改 NASA 的网站,这并不意味着它不安全。

当然,您需要在编写代码时考虑到所有这些因素,因为这意味着您根本无法信任用户输入。如果您在 javascript 中进行了验证,则还需要在后端对其进行验证,因为如您所见,任何人都可以覆盖该验证。

编辑: 只是为了澄清一些事情。 XSS 是指您注入会影响其他用户的代码。例如,通过 URL 注入 javascript,任何使用 URL 的用户都将执行 javascript,或者通过评论表单注入的 javascript 现在每个阅读该评论的用户将执行该 javascript。但是,如果您是唯一有权访问该脚本的人,就像开发工具一样,那么这不是 XSS 漏洞,它只是网络浏览器按预期工作。