React 组件的状态是否容易受到 XSS 攻击?
Is a react component's state susceptible to XSS?
React 组件的状态是否容易受到 XSS 攻击?
我想知道在组件状态中存储 JWT 访问令牌是否比在 localStorage 中危险性低?
根据状态的使用和设置方式,它可以不易受到影响,但并非万无一失。
如果您担心不可信的代码可能会访问它们不应该访问的内容,本地存储的问题之一是页面上的 any 脚本 运行可以轻松访问该域的本地存储中的任何值。相比之下,在某个地方处于 React 状态的值本身就更难访问。
如果在任何地方从组件外部使用状态,它可能容易被恶意脚本拦截。例如,如果在 API 请求中使用状态,则恶意脚本可以修补 window.fetch
或 window.XMLHttpRequest
并监视它(除非你也采取预防措施)。如果状态被放到页面上,比如在输入中(即使是隐藏的),恶意脚本检索它就很容易了。
即使不直接在任何地方使用状态,在某些情况下,也几乎不可能gain access to the closure in which it's defined或设置。
通常,如果恶意代码在页面上运行,您就不能指望页面上的任何其他内容 运行 是安全的。最好的第一种方法是确保您的应用程序首先没有任何 XSS 漏洞。防范这种可能性应该是遥远的第二优先事项。
React 组件的状态是否容易受到 XSS 攻击?
我想知道在组件状态中存储 JWT 访问令牌是否比在 localStorage 中危险性低?
根据状态的使用和设置方式,它可以不易受到影响,但并非万无一失。
如果您担心不可信的代码可能会访问它们不应该访问的内容,本地存储的问题之一是页面上的 any 脚本 运行可以轻松访问该域的本地存储中的任何值。相比之下,在某个地方处于 React 状态的值本身就更难访问。
如果在任何地方从组件外部使用状态,它可能容易被恶意脚本拦截。例如,如果在 API 请求中使用状态,则恶意脚本可以修补 window.fetch
或 window.XMLHttpRequest
并监视它(除非你也采取预防措施)。如果状态被放到页面上,比如在输入中(即使是隐藏的),恶意脚本检索它就很容易了。
即使不直接在任何地方使用状态,在某些情况下,也几乎不可能gain access to the closure in which it's defined或设置。
通常,如果恶意代码在页面上运行,您就不能指望页面上的任何其他内容 运行 是安全的。最好的第一种方法是确保您的应用程序首先没有任何 XSS 漏洞。防范这种可能性应该是遥远的第二优先事项。