为什么油猴GM_xmlhttpRequest API 能修改origin和referer字段?

起初只是发现GM_xmlhttpRequest发出的请求chrome的network是看不到的,就去查,结果没查到,反而查到了GM_xmlhttpRequest还能修改origin和referer字段。自己写代码访问了自己的主机,发现还真是。
不是说origin和referer字段是不可修改字段吗,一旦修改chrome就会报错,为什么GM_xmlhttpRequest可以修改,是不是这也和chrome的network检测不到由GM_xmlhttpRequest发出的请求有关

阅读 3.1k
1 个回答

第一,GM_xmlhttpRequest 发出的请求能看到,你看不到是因为你找错地方了。扩展和网页两者是独立的,你要区分 content 和 background。你去看网页本身的 Network 当然看不到扩展程序发起的请求了 ———— 就像你开两个浏览器标签页、Tab1 里发起的请求、你在 Tab2 的 Network 里怎么能看到呢?

第二,Chrome/Firefox 等浏览器对扩展程序开放了一些额外的能力,这些能力都是在普通网页中无法实现的。在扩展中运行的 XMLHttpRequest 是一种提权过的特殊的 XMLHttpRequest,所以不是油猴能修改,而是浏览器允许扩展程序能修改,不代表你在在普通网页中也能这么干。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题