如果黑客无法访问用户计算机,他如何执行 xss 攻击?

How a hacker can perform an xss attack if he does not have access to the user computer?

我正在阅读一些有关 React 应用程序安全性的文章。事实上,我使用 localstorage 来存储用户的信息,我已经看到 xss 攻击很容易让黑客窃取它们。

但是,据我了解,在 React 中,xss 攻击只能通过显示输入内容的 setDangerouslyInnerHtml 标签来执行。这样,您就可以窃取他的信息、cookie 会话等。并将它们发送到您的网站。

但是黑客只有在有机会在用户的计算机上编写脚本时才能这样做,对吧?那么,如果我不使用任何 setDangerouslyInnerHtml 标签,本地存储在 React 应用程序中是否安全?如果不是,黑客如何 运行 对网站进行此类攻击?

  1. 如果用户使用 public 计算机,则可能。
  2. 如果您有一些功能允许外部用户 post 您网站上的内容,例如评论或反应,那么有人可能会编写一个脚本,将本地存储数据发送给黑客。

有很多方法可以利用这个,查看 owasp 以获得更详细的解释。

https://owasp.org/www-project-top-ten/

开发者必须接受攻击者的所作所为:

  • 他们可以重新设置整个网站的主题,
  • 他们也可以制作“机器人”脚本来自动执行任务,换句话说,如果这是任务,就会淹没您的服务器。
  • JS/HTML 中定义的所有限制都可以而且将会被绕过,(例如:forms/etc 中的字符长度)
  • 可以重写整个页面,使其不与您的服务器对话,换句话说,它会崩溃,如果不这样做,还会造成更多handled/detected。
  • 这个列表还在继续,但如果有人想要足够努力地撬开它,请接受它几乎全部关闭 table。

为了防止这种情况,您无能为力,解释一下!您可以从 randomxyxsite.com 添加一个外部脚本,尽管受信任的脚本现在可能会受到攻击 运行 是“记录器或某种类型的分析抓取机器人”,但我认为这很容易避免如果可以,不要添加外部脚本。

虽然我说了我最初所说的,但这就是你被困的地方...... 任何用户都可以打开 console/build 扩展程序或使用第三方加载程序(如 Tampermonkey 和其他替代程序)并随意执行脚本。这也可以成为“共享”并与僵尸网络行为相媲美。

那么您可以做些什么来阻止客户行为不当或“超级修改”他们的内容以供恶意服务器使用?

一些防护方法:

  • 服务器端的请求应该通过某种形式 check/sanitization 以确保无论任何客户端传递给它都是绝对安全的吸收。
  • 永远不要让用户告诉你他们谁登录不了,通过sessionid来定义这些用户;通过他们的会话了解这些用户,当用户<>用户时,在他们之间进行操作并遵循上述要点。
  • 尽可能保密。 Public variables/classes/functions 很容易在 运行 时间内重写,留下一些您可能打算分崩离析的功能。

window.PayFeature = function(){};

允许 XSS:

如果害怕,开发者应该多研究一下。尽可能多的用户可以 distort/change 他们的结束,只有当流量发生变化或从他们那里收到的数据开始变得像攻击一样时,这才是一个问题。因此,对于开发人员而言,您最好的选择是实际为用户设置速率限制、设置规则等,以便检测并阻止滥用行为。只要你这样做,你就永远不应该害怕它,而是欢迎它,当服务器受到保护时,它就变成了垃圾邮件(潜在的僵尸网络)