File System Access API:浏览器如何安全地跨越沙箱访问本地文件

2019 年,一个名为「Native File System API」的提案出现在 WICG(Web Incubator Community Group)的讨论区。它的目标很直接:让 Web 应用能够像原生应用一样读写用户的本地文件。三年后,Chrome 86 正式发布了这项功能,更名为 File System Access API。而在大洋彼岸,Mozilla 的工程师在 GitHub issue 中留下了五个字的评价:「harmful」(有害)。 ...

11 min · 5087 words

内容安全策略为何成为浏览器安全的双刃剑:从白名单陷阱到严格模式的十年演进

2019年3月,一名安全研究员发现了一个令人不安的事实:在全球排名前100万的网站中,部署了CSP的网站仅有4.6%,而其中超过一半的策略可以被轻易绕过。这项由Google安全团队主导的研究揭示了一个残酷的真相——这个被设计为XSS攻击"终结者"的安全机制,在实践中正变得形同虚设。 ...

15 min · 7256 words

当密钥逃离JavaScript:Web Crypto API设计背后的安全哲学

2012年12月,第29届混沌通信大会(29C3)在汉堡举行。Harry Halpin在演讲中抛出一个颇具挑衅意味的标题——“Re-igniting the Crypto Wars on the Web”(在Web上重新点燃密码学战争)。这不是耸人听闻。当时的背景是:斯诺登事件尚未爆发,但全球范围内的网络监控已成公开的秘密。Web应用亟需端到端加密能力,而JavaScript却在这方面显得力不从心。 ...

14 min · 6622 words

你的眼睛在撒谎:一个字母如何让整个域名变成钓鱼陷阱

2017年4月,安全研究员Xudong Zheng注册了一个特殊的域名。当他在Chrome浏览器地址栏输入这个域名时,显示的是"apple.com"——苹果公司的官方网址。但这个域名实际上与苹果公司毫无关系,它使用的是西里尔字母而非拉丁字母。整个互联网社区为之震惊:我们赖以信任的浏览器地址栏,竟然可以被一个字母欺骗。 ...

14 min · 6892 words

被吊销的HTTPS证书为何仍然可信?从软失败陷阱到CRLite的二十年技术突围

2014年4月,Heartbleed漏洞震惊全球。这个OpenSSL库中的缓冲区越界读取漏洞可能导致服务器私钥泄露,理论上需要立即撤销并重新签发所有受影响的证书。然而,马里兰大学的研究团队在三周后发现:超过73%的易受攻击证书未被重新签发,超过87%未被撤销。更令人担忧的是,撤销率在周末会显著下降——仿佛攻击者也会休息。 ...

10 min · 4865 words

为什么一个JSON请求需要两次网络往返?CORS预检机制的设计权衡与优化路径

2019年,某电商平台在大促前夕发现一个诡异的现象:虽然后端API响应时间已经优化到10毫秒以内,但前端用户感知的延迟却高达300毫秒。排查后发现,罪魁祸首不是数据库、不是CDN,而是一个被大多数开发者忽视的HTTP方法——OPTIONS。 ...

9 min · 4134 words