【问题标题】:Prevent intercepting XHR requests in JavaScript防止在 JavaScript 中拦截 XHR 请求
【发布时间】:2021-03-11 12:42:12
【问题描述】:

有没有办法防止从全局范围(如here)拦截XHR请求?

首先想到的是,将 XMLHttpRequest 作为参数传递给应用程序入口函数(或 IIFE)并根据该副本发出请求(例如,JQuery 有一个自定义 XHR 对象的选项)。它可靠吗?还是有其他方法可以在不改变 XMLHttpRequest 的情况下拦截请求?

关注的是处理成功的 XSS 攻击后,攻击者可以拦截请求并从标头中窃取 JWT 的情况。

【问题讨论】:

  • "[...] 在一次成功的 XSS 攻击之后" 你遇到的问题比你在这里要解决的问题要大。就像......“他们可能会用核武器袭击我们,那么我们如何处理步兵?”
  • 你是对的,但有时你无法控制一切。

标签: javascript xss


【解决方案1】:

使其不可变:

const send = XMLHttpRequest.prototype.send;
delete XMLHttpRequest.prototype.send;
Object.defineProperty(XMLHttpRequest.prototype, 'send', {value: send});

【讨论】:

  • 谢谢!这看起来很有希望。作为一个额外的步骤,XMLHttpRequest 本身可以以只读方式完成。
猜你喜欢
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
相关资源
最近更新 更多