Dav*_*ank 6 javascript google-chrome websocket
我正在尝试连接到外部Web套接字服务器,这不是我自己运行的.我想从localhost javascript文件连接到它,因此origin头具有null值.
我知道这是针对跨站点伪造的措施.但是,因为我在localhost上,所以我应该能够通过让Chrome发送自定义的Origin标头来伪装它.
可能吗?(如果我需要延期,那很好)
如果没有,实现上述目标的最佳选择是什么?谢谢.
Rob*_*b W 12
网页无法更改Origin标头,但扩展可以通过chrome.webRequest API 修改请求标头.但ws://与wss://不支持此API,所以这并不能帮助,除非服务器还可以通过HTTP(S)(例如长轮询)支持多种通讯方式.
但仍有一个解决方案:只需在iframe(例如https://example.com/favicon.ico或https://example.com/robots.txt)中的所需原点加载(已知)网页,然后使用内容脚本从那里打开WebSocket.
小智 5
该Origin头是由用户代理(如浏览器实现的一部分)自动设置的集流管中的一个,并且不能被编程或通过扩展改变。这是有道理的,因为Web服务提供商不能允许来自本地主机的随机连接。
仅当从Web服务提供商明确接受的主机中进行连接时,才能连接到外部WebSocket。许多标头不能被信任(因为它们可以被覆盖),但事实并非如此,Origin因为它不仅为用户提供了安全性,而且还为服务提供者提供了防止不必要连接的安全性。
| 归档时间: |
|
| 查看次数: |
15425 次 |
| 最近记录: |