cloudflare workers 传入网页时注入脚本的话,是不是服务端设置 CSP 也没办法保证完整性?

查看 169|回复 10
作者:raw0xff   
域名 DNS 都在 cloudflare 内管理,worker.js 可以在获取服务端内容后修改然后再发给客户端,那岂不是可以轻易绕过 CSP ?作为服务端网页如何保证自己完整性?
codehz   
这不都是你自己管理的东西吗,csp 防止的是未授权的修改,不是防止你在你自己域名上的授权修改
ETiV   
能改的只有 worker 和 cloudflare ,worker 你自己控制,cloudflare 靠商誉不去修改你的东西…
有种 Notion page 自定义域名的做法就是代理然后靠 worker 修改请求下来的所有资源里的 notion 的域名…我不知道现在还好使不,如果不灵了你可以了解下 Notion 是怎么做的…如果还能用,那说明 Notion 也没辙……
raw0xff
OP
  
@codehz 主机运行的服务端与主机及域名权限拥有者不是一个人。担心主机通过 worker 注入代码,浏览器得到的网页代码被修改,用户操作就不安全。
@ETiV 理论上 worker 能完整的得到响应就能改,貌似无解。不知道服务端是否能分辨出请求是否来自 worker 还是客户端浏览器?
caomingjun   
@raw0xff 可以分辨,有个 header 会指示来自 worker
https://developers.cloudflare.com/fundamentals/reference/http-request-headers/#cf-worker
raw0xff
OP
  
@caomingjun 常规是有标识,但是 worker 可以修改 fetch 的 headers ,可以伪装成普通浏览器用户。
caomingjun   
@raw0xff 据我所知应该是改不了的,你不放心可以试试。普通用户倒是可能加个 header 伪装成 worker 。
icoming   
@caomingjun 楼主不是你这个意思,你是说服务端可以识别到请求来自 cf worker ,然后处理。但是楼主是说他知道请求来自 worker ,只是想保证经过 worker 后,客户端收到的是没有修改中间端修改过的响应
其实这和 worker 没什么关系,直接搜索客户端数据校验之类的看看
ETiV   
@icoming 但是 worker 作为一个完美的中间人,校验函数都可以给改掉…😂 可以说是为所欲为了
raw0xff
OP
  
@caomingjun 标头都可以修改
@icoming
@ETiV
完美中间人形容很贴切。不知道页面嵌入个 wasm 能不能解决问题。或者就换个思路,模拟普通用户访问对网页代码进行验证。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部