主题:security
5 篇 · 合计 11,652 字
- 为什么这个站没有 JavaScript
零脚本、零外链资源,CSP 才能收紧到 default-src 'none',不需要任何信任清单。文中给出用纯 CSS 替代脚本的具体做法、可审计性的收益、会失去的能力与替代方案,并说明 JSON-LD 这类 data block 为何不算脚本。
- 自动更新开了,但只覆盖一部分源——怎么验证它真的按你预期在跑
unattended-upgrades 的默认 Allowed-Origins 只含 release 与 security 两个 pocket,universe 组件的补丁不会自动装。记录用 --dry-run --debug 读 apt 的 pin 行为来验证覆盖范围的方法,以及两个容易误读的输出。
- 用 Cloudflare Access 替代应用的弱认证
隧道只解决了网络暴露,认证责任仍默认落在应用自身,而自托管应用的门锁往往很弱。本文比较应用层、反代层与边缘层三种认证位置的能力差异,给出用 curl 首跳 302 判断 Access 是否生效的方法,并划清它不能替代应用授权的边界。
- 域名卫生:TXT、SPF、DMARC 与一个「看起来像真站」的域名
一个没有任何 TXT 记录的域名,比没有网站更早暴露「临时域」的身份。SPF、DMARC、CAA 各在防什么、最小写法如何,以及一组可执行的 dig 检查序列和每项有值与留空的判读依据。
- 公开面审计:哪些服务该公网可读,哪些必须私有
把「有登录页」当成安全的后果,是域名下堆起一片产品名的登录墙:匿名访客一无所获,风险却照单全收。给出三种暴露形态的判据、一次可复现的公开面审计流程,以及按代价排序的四档处置与「门面静态化」原则。