raw0xff 最近的时间轴更新
raw0xff

raw0xff

V2EX 第 575877 号会员,加入于 2022-03-18 01:19:37 +08:00
今日活跃度排名 11971
根据 raw0xff 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
raw0xff 最近回复了
@caomingjun 对不起,你是对的,标头可以修改,但是返回给浏览器前 cloudflare 会重新改回来。所以网站是否用了 worker 是可以从响应头分辨的。
@0o0O0o0O0o 好像真的无解,即便关键代码写成 wasm 也没啥用。
@r46mht
感谢回答。问题就出在你说的静态网页上,也就是说无法保证用户访问的第一个网页的完整性。如果可以的话,后续任何代码变动都可以被 csp 和 sri 约束。
15 楼给的链接 https://news.ycombinator.com/item?id=39436238 里有讨论到。
@0o0O0o0O0o 服务端应用给每次请求登录时的页面内包含随机值且记录下来,登录时 js 将自己的网页 hash 一并发给服务端,服务端验证 hash 后再进行登录验证。 大佬帮忙看这逻辑有没有漏洞?
@0o0O0o0O0o 感谢大佬,真巧重合度很高,文中说的方式试过一些,CSP SRI IPFS 再叠上一些加密方式的 buff 。但是没有一个完美的解决方案。
@caomingjun worker.js 里可以改 response 中所用东西,试过了。


@0o0O0o0O0o 感谢大佬这么细致,你猜的对,“当自己的 web 应用跑在别人的主机和域名下,如何避免网页被注入”。感觉只能制造注入控制的难度,治标不治本。比如整个随机变量名和随机位置啥的。另外浏览器加载网页 js 后是需要跟服务端程序通信的,我总觉得有办法解决,又想不出办法。
@r46mht 不是,加 tls 的话证书和 key 都是暴露的,无济于事。

为了确保 worker 不注入代码,浏览器收到的是服务端给的完整代码。
CSP 不行,会被直接绕开。
服务端识别请求也不行,worker 可以修改标头。

如果服务端对每次每个用户的登录请求返回不同的内容(比如随机函数名随机变量名随机代码排序等等)使中间人统一作恶有一定难度,不知道这个想法成不成熟有没有用。

在这种带证书的中间人情况下,是不是任何措施都只能增加中间人作恶难度,而不能解决根本问题? 哪位老哥给点建议,不行我就换个思路,定期从外部访问校验网页是否安全。
@caomingjun 标头都可以修改


@icoming
@ETiV
完美中间人形容很贴切。不知道页面嵌入个 wasm 能不能解决问题。或者就换个思路,模拟普通用户访问对网页代码进行验证。
@caomingjun 常规是有标识,但是 worker 可以修改 fetch 的 headers ,可以伪装成普通浏览器用户。
@codehz 主机运行的服务端与主机及域名权限拥有者不是一个人。担心主机通过 worker 注入代码,浏览器得到的网页代码被修改,用户操作就不安全。


@ETiV 理论上 worker 能完整的得到响应就能改,貌似无解。不知道服务端是否能分辨出请求是否来自 worker 还是客户端浏览器?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3920 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 10:36 · PVG 18:36 · LAX 03:36 · JFK 06:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.