关键词:
【中文标题】用于拦截/修改 websockets UA 的 Chrome 扩展 API【英文标题】:Chrome extension API for intercepting/modifying websockets UA 【发布时间】:2015-05-08 12:28:00 【问题描述】:我正在尝试编写一个扩展来修改来自 Chrome 的所有传出请求的用户代理。
对于 http://、https://、ftp://、file:// 或 chrome-extension://,我可以使用 chrome.webRequest API 和 onBeforeSendHeaders
。但是,这不适用于 ws:// 或 wss://。
是否有其他 API 允许我设置/修改这些请求的标头?
【问题讨论】:
【参考方案1】:我在谷歌上搜索这个问题的答案,既然三年后的现在是可能的,我会在这里记录下来。
根据https://developer.chrome.com/extensions/webRequest,它应该可以在 Chrome 58 上运行。但是需要几个配置才能使其正常工作。
必须在清单中为 webRequest 和 webRequestBlocking 请求权限 还必须为 Web 套接字 URL 请求权限,例如“wss://*/”和“ws://*/” 在请求过滤器中(在 addListener 函数调用中),url 必须用 wss 或 ws 方案声明。使用 * 作为方案仅解析为 http 和 https 在请求过滤器中,websocket 必须在类型中声明。 (我不确定这是否需要,我没有时间验证)请记住,webRequest 仅在后台脚本中可用,而在内容脚本中不可用。
示例(更改Origin标头,更改User Agent应该类似)
在 manifest.json 中:
"permissions": [
"storage",
"tabs",
"activeTab",
"webRequest",
"webRequestBlocking",
"webNavigation",
"debugger",
"https://*/",
"wss://*/"
],
在后台脚本中
// origin is defined somewhere above
chrome.webRequest.onBeforeSendHeaders.addListener((details) =>
if (origin)
const headers = details.requestHeaders;
for (let i = 0; i < headers.length; i++)
if (headers[i].name === 'Origin')
headers[i].value = origin;
return requestHeaders: headers ;
, urls: ['wss://server.example.com/*', 'https://server.example.com/*'],
types: ['xmlhttprequest', 'websocket'] ,
['requestHeaders', 'blocking']);
【讨论】:
这对我不起作用。我的 chrome 不拦截 websocket 请求(【参考方案2】:恐怕不行。现在可以使用请求标头,请参阅this answer。
不过,这将是一个不错的功能请求。
【讨论】:
Link 到功能请求。对于那些感兴趣的人。fiddler拦截http请求修改数据
1、拦截http请求使用Fiddler进行HTTP断点调试是fiddler一强大和实用的工具之一。通过设置断点,Fiddler可以做到:①修改HTTP请求头信息。例如修改请求头的UA,Cookie,Referer信息,通过“伪造”相应信息达到相应的目的(调试,模拟... 查看详情
gorilla/websocket使用教程
...占用数据。这时Http则不能达到要求。所以自然想到采用websocket。以前使用SpringBoot时使用websocket很简单,只需要将ServerEndpointExporter注入到bean容器并配合相应注解即可创建一个websocket服务。这里要感谢各位前辈的封装让我们能尽... 查看详情
如何将异步服务用于角度 httpClient 拦截器
】如何将异步服务用于角度httpClient拦截器【英文标题】:HowuseasyncserviceintoangularhttpClientinterceptor【发布时间】:2018-01-0220:41:53【问题描述】:使用Angular4.3.1和HttpClient,我需要将异步服务的请求和响应修改为httpClient的HttpInterceptor... 查看详情
在 SSL WebSocket 连接 (wss) 中拦截请求
】在SSLWebSocket连接(wss)中拦截请求【英文标题】:InterceptrequestsinSSLWebSocketconnection(wss)【发布时间】:2021-05-2517:54:55【问题描述】:我有一个WSS服务器正在运行,我想拦截客户端和服务器之间的WebSocket消息。我能够使用WS(无SSL)... 查看详情
带有 websocket 和会话拦截器的 Spring + Tomcat = 问题
】带有websocket和会话拦截器的Spring+Tomcat=问题【英文标题】:Springwithwebsocketandsessioninterceptor+Tomcat=problem【发布时间】:2021-05-2611:36:22【问题描述】:我遇到了奇怪的问题。我正在使用WebSockets开发基于SpringBoot的Web应用程序。我需... 查看详情
Ngxs + WebSocket |如何拦截连接并添加自定义 HTTP 标头?
】Ngxs+WebSocket|如何拦截连接并添加自定义HTTP标头?【英文标题】:Ngxs+WebSocket|HowtointercepttheconnectionandaddcustomHTTPheader?【发布时间】:2018-11-2110:15:47【问题描述】:我正在使用ngxs\'NgxsWebsocketPluginModule从我的Angular应用程序中创建一... 查看详情
用于 Windows CE/Mobile 的 C++ 中的 HTTP Websockets 客户端库
】用于WindowsCE/Mobile的C++中的HTTPWebsockets客户端库【英文标题】:HTTPWebsocketsclientlibraryinC++forWindowsCE/Mobile【发布时间】:2014-11-2016:32:37【问题描述】:我正在寻找一个基于C/C++的http/websocket库,该库在使用WindowsSChannel(而不是OpenSSL... 查看详情
如何在中间件设置ua池,代理池(代码片段)
... -操作流程: 1.在下载中间件中拦截请求 2.将拦截到的请求的请求头信息中的UA进行篡改伪装 3.在配置文件中开启下载中间件 代码展示:#导包fromscrapy.contrib.d... 查看详情
javax.servlet.Filter 会拦截 Websocket 消息吗? (Java Servlet API)
】javax.servlet.Filter会拦截Websocket消息吗?(JavaServletAPI)【英文标题】:Willjavax.servlet.FilterinterceptWebsocketmessages?(JavaServletAPI)【发布时间】:2014-07-2314:59:04【问题描述】:当我有一个websocket连接时,在“/ws”处说“/ws”路径上的常... 查看详情
用于 OPC UA 的 R 包
】用于OPCUA的R包【英文标题】:R-packageforOPCUA【发布时间】:2021-12-2606:13:34【问题描述】:我想知道是否有人使用OPC-UA通信标准为R开发包。我在CRAN和GitHub上都没有找到R-package。我的想法是对OPC-UA服务器发送的数据进行一些实时... 查看详情
mybatis实现sql查询拦截修改详解
...了InvocationHandler接口,InvocationHandler接口仅包含invoke方法用于回调方法。当执行代理对象的接口方法时,会调用Plugin的invoke方法,它会把要执行的对象,方法和参数打包成Invocation对象传给拦截器的intercept方法。Inv 查看详情
springboot中使用拦截器(代码片段)
...后台,更拔高一层的使用场景也有,比如拦截器可以结合websocket一起使用,用来拦截websocket请求,然后做相应的处理等等。拦截器不会拦截静态资源,SpringBoot的默认静态目录为resources/static,该目录下的静态页面、js、css、图片 查看详情
是否有任何用于 nodejs 的 websocket 插件
】是否有任何用于nodejs的websocket插件【英文标题】:Arethereanywebsocketpluginsfornodejs【发布时间】:2011-08-3002:43:54【问题描述】:有没有nodejs的websocket插件;我想开发一些使用websockets的应用程序。【问题讨论】:【参考方案1】:Chec... 查看详情
Tomcat 上的 Websockets:如何干净地关闭服务器?
】Tomcat上的Websockets:如何干净地关闭服务器?【英文标题】:WebsocketsonTomcat:howtoshutdowntheservercleanly?【发布时间】:2015-08-0708:35:37【问题描述】:如何拦截服务器上运行的端点的关闭事件(例如servlet的销毁方法)以用于日志记录... 查看详情
用于后台处理的 Websocket
】用于后台处理的Websocket【英文标题】:Websocketsforbackgroundprocessing【发布时间】:2011-09-0210:43:44【问题描述】:使用Websockets(彗星、服务器推送等)来解决长时间运行的HTTP请求的问题是个好主意吗?想象一下,您有一个应用程... 查看详情
大屏的接口开发一:基于springboot的websocket数据推送(代码片段)
...,实现数据的同步变动展示。这里主要使用SpringBoot集成webSocket实现数据的全局发送,指定用户发送,值得注意的是这里使用了Spring自带的握手拦截器获取前端传来的userId,与webSocket的会话进行绑定,用于长连接的身份区分。如... 查看详情
大屏的接口开发一:基于springboot的websocket数据推送(代码片段)
...,实现数据的同步变动展示。这里主要使用SpringBoot集成webSocket实现数据的全局发送,指定用户发送,值得注意的是这里使用了Spring自带的握手拦截器获取前端传来的userId,与webSocket的会话进行绑定,用于长连接的身份区分。如... 查看详情
RatchetPHP 没有用于新连接的 WebSocket 属性
】RatchetPHP没有用于新连接的WebSocket属性【英文标题】:RatchetPHPnoWebSocketpropertyfornewconnections【发布时间】:2017-08-2123:47:30【问题描述】:我正在尝试使用Ratchet在Websocket服务器的onOpen函数中访问传入连接的查询参数。officialdocumentat... 查看详情