[extention] 拓展跨域 ajax劫持

先说一下,这绝对不是一个安全的选择!

而且,只适合在开发过程中使用
好了,但是在开发过程中难免会请求到跨域的资源,可能是个测试数据,可能是个接口,这是因为浏览器的同源策略阻止了你的请求结果

同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。
同源定义
如果两个 URL 的 protocolport (en-US) (如果有指定的话)和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。(“元组” 是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。

这个方案的优点就是快,适合开发,加载一个chrome拓展插件去劫持ajax,利用background.js发送请求绕过同源策略。

项目地址:https://gitee.com/boboanzuiniubi/ext-xhr-proxy

先看看效果

1ac7e936c06def530a616be1d4c299c0.gif

实现的原理

image.png

在 background.js 里发送的请求是不会跨域的

加载了拓展插件,会有一段个 content_script 的 script 注入到你的页面(content_script 与网站的js是隔离开的,他们共享的只有document,他相对安全),这个 script 中包含一些 chrome 浏览器的 api,content_script 在这里利用浏览器的消息 api 作为网站与 background 间的消息接口。

content_script 还有一个另外的作用,是他用 document 注入了一个 script 标签(这里称为 inject_script ),注入的 inject_script 并没有与网站隔离,它可以访问你任何变量,这个项目就修改了 XMLHttpRequest 构造函数,使他返回一个 xhr 的代理,使所有对于xhr对象的操作(open/send...)都被 xhrProxy 拦截到了,实现了 ajax 劫持

当 xhrProxy 对象拦截到需要被代理的请求时,会通过 postMessage 向 content_script 发送消息 content_script 则会把消息转发到 background.js 在 background 中创建一个 xhr 对象发送真正的请求。在 response 后,再通过 content_script 原路返回 postMessage 到活动页面上 更新 xhrProxy 的状态实现代理请求

总结

先感谢一下 小茗同学大佬的文章 少走弯路发家致富。

用 extention 处理跨域在开发过程中是十分省时间的,毕竟加载一个 chrome 插件比起一个代理服务要快得多。

不过也想给大家提醒,我能使用 chrome 插件劫持 ajax 请求,我就能把请求转发给我自己的服务器,是很不安全的,并且 inject_script 就在往页面注入 js ,当你使用一个非官方的插件时,你不清楚他到底做了什么,比如你在浏览 steam 时正好开着一个不知名插件,那么你的 steam 账号 密码 token 登录状态啥的完全可能泄露给别人了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容