浏览器插件能否做到拦截页面发起的请求进行参数改写再下发?

类似于 Ajax Interceptor,可以对GET请求的返回内容进行拦截和改写。

是否存在这样的一款浏览器插件,可以实现对 GET、POST、PUT 等请求进行拦截改写参数再下发,还能对其响应内容进行拦截修改,且原请求的 header、cookie、referer 等信息也不丢失。

如果没有现成的浏览器插件,那浏览器插件是否具备这样的权限,可以实现?

阅读 7.5k
2 个回答

可以实现,提供两个思路:

方案一
1.首先通过插件插入script, 注入js到当前页面下,也就是能和当前页面共享作用域。
2.重写该网页下原生的xhr和fetch方法,加入拦截代码。
但是如果这些原生对象被锁了,比如已经被该网站设置为不可修改对象,那么这个方式就走不通。

方案二
插件提供了WebRequest API,用于对web请求进行一系列操作:
https://developer.chrome.com/...

但是在插件的MV3规范中,已经将这个API作为不推荐使用的方式了,也就是说如果你是个人开发者,这个API很可能会直接报错,后续可能也会被废弃。Chrome官方的解释是,WebRequest由于从请求发起就会拦截,导致性能受影响,且给开发者的权限太大,可能导致安全问题。

方案三
在MV3中,提供了声明式的API,declarativeNetRequest
即在manifest.json中就指定要拦截的请求或者类型,这种方式更加安全,性能也更好,也是官方主推的方式。

不清楚,搜了一些好像只有抓包的插件,postman 也可以捕获请求。
burpsuite 渗透测试工具,支持抓包和改写,是安全员常用的工具,不是插件,是通过代理服务器来操作的。

edge 现在也有重新编辑发送请求的功能。
image.png

推荐问题
宣传栏