Aggregator
Cybersecurity Myths That Are Harming Your Business
2020 Firefox 安全、隐私、实用扩展指南
新版本的 Firefox 加入了越来越多的隐私和安全相关功能,不过单凭 Firefox 自带功能还远远不能提供理想的安全上网体验。本篇文章将会介绍一些我目前使用的安全、隐私和实用相关的 Firefox 扩展,让网页浏览变得更加安全快捷。本文将着重介绍安全和隐私相关扩展,而对开发相关和实用性扩展一笔带过。扩展按字母顺序排序,可以通过右侧的目录来快速浏览。本文专业内容较多,如果有不正确或者可以改进的地方,请联系作者,我会立即更改。
安全隐私相关扩展 Behave!- 防止 DNS rebind 攻击
- 防止浏览器访问私有 IP 地址
- 防止端口扫描
当浏览器企图用 JavaScript 进行 IP 地址端口扫描时,Behave! 会记录并警告用户
可以到项目 GitHub 了解技术细节:https://github.com/mindedsecurity/behave
Canvas BlockerCanvas Blocker 扩展可以生成虚假的随机信息来欺骗各种追踪器。它可以伪装以下 API 的信息:
- canvas 2d
- webGL
- audio
- history
- window(默认禁用)
- DOMRect
- navigator(默认禁用)
- screen
Canvas Blocker 的设置较为复杂,需要了解上述的 API 才能较好地进行定制。
ClearURLs不少网站会在用户分享的链接中植入 UTM 参数以跟踪访问来源等。例如在如下的 Reddit 分享链接中,?utm_medium=android_app&utm_source=share 就是 UTM 参数。这两个参数告诉网站,这次的用户访问是通过分享链接访问的,而分享这个链接的设备运行的是 Android 系统。
下面的例子来源于 Amazon,其中 ref=sr_1_2?dchild=1&keywords=cisco&qid=1392922149&sr=8-2 的部分记录了各种信息,例如用户是搜索 Cisco 关键词后找到的这个商品。
作为一个对隐私比较偏执的用户,我并不希望网站知道类似于我是从谁获得的链接,分享链接给我的人使用了什么关键字找到的这个链接这些多余的信息。ClearURLs 会自动将链接中的此类追踪参数全数删除,让网站只知道您请求了该网页,而无从获知这些多余的信息。
例如上述的 Amazon 页面就会被清理成这样,既简洁又保护了隐私。
https://www.amazon.com/SYSTEMS-10-Port-Gigabit-Managed-SG35010K9NA/dp/B01HYA36SG
Decentraleyes很多网站会从 jQuery CDN 或者 Google Hosted Libraries 这样的第三方 CDN 加载流行的 JavaScript 框架。这样可以有效减轻网站的服务成本,同时也可以使用 CDN 的资源来加快加载速度。
例如下面的代码就会从 Google Hosted Libraries 加载 3.5.1 版本的 jQuery,而无需开发者在网页上额外保存一份 jQuery 副本。
1 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>Decentraleyes 本地缓存了很多这样的文件。网站在向 CDN 请求文件的时候,Decentraleyes 就会拦截这些请求并且使用本地已经缓存好的文件。这么做既可以节省带宽,加快加载速度,也可以让用户摆脱对集中式网络的依赖以保护隐私。
Decentraleyes 工作原理
当您通过点击 URL 打开新的标签页时(target=_blank),新打开的窗口会拥有一个 window.opener 对象指向前一个网页的 window 对象。简而言之,新打开的标签页面可以控制前一个网页上的内容。
您可以通过 https://mathiasbynens.github.io/rel-noopener/ 这个网站更好的了解并体验这个机制。在禁止这个特性之前,可以通过点击图中的 URL 打开新的非同源页面。
rel=noopener 演示页面
如果该特性没有被禁止,网页会让您返回查看先前的页面。
打开的新标签页
此时可以发现先前的页面已经被新的页面篡改。这个问题的存在意味着恶意网站可以向打开它的页面中植入恶意代码。
被篡改的原网页
向网页中的 HTML 标签中加入 rel="noopener" 属性可以让新打开的页面中的 window.opener 等于 null,使新的页面无法访问先前的页面。然而此项功能是可选的,并且依赖您访问的网站来添加此标签。Don’t touch my tabs! 扩展会自动在非同源链接后加上 rel="noopener" 来确保您的网页不会被此方法篡改。
扩展自动在 HTML 标签里加入了 rel=“noopener” 属性
Firefox 联合 Cloudflare 出品的代理扩展,目前仅在美国地区进行公测。如果需要加入公测需要 IP 地址在美国,可以通过代理或者 VPN 做到。早期加入公测的用户可以无限时地使用 FPN,但是新用户每个月仅可使用 12 小时。我很幸运在早期就了解到了这款扩展,所以目前可以无限白嫖使用。
Firefox Private Network 处于运行状态
在使用了此扩展之后,所有浏览器的流量将从 Cloudflare 网络代理,网站仅能看到 Cloudflare 节点的地址。
IPInfo 显示浏览器 IP 地址为 Cloudflare 节点 IP
Forget Me Not(勿忘我)是一款可以清理浏览器 Cookie、浏览历史、网站缓存等数据的扩展。您可以自定义清理规则,例如清理时忽略某个网站,或者 Firefox 启动时清理清理 Cookie 和 历史。您也可以把这款扩展当作 Cookie 自动清理器来使用,在离开某个网站 N 分钟之后自动删除该网站的 Cookie、Local Storage、历史等。
下面的截图中,*.mozilla.org(所有 mozilla.org 网页)的清理作业被全部忽略,自动和手动清理时就相应的不会清理 Mozilla 网站的数据。
Forget Me Not 网站规则
下面的规则页面规定了何种数据应该在自动清理时被清除。
Forget Me Not 规则
当用户访问某个网站并且没有指定使用不安全的 HTTP 协议还是使用安全的 HTTPS 协议时,EFF(电子前哨基金会)开发的 HTTPS Everywhere 扩展会自动判断目标网站是否支持 HTTPS,并且如果网页服务器支持 HTTPS 则自动跳转到 HTTPS 页面。
HTTPS Everywhere 原理
在此之上,HTTPS Everywhere 还能够强制仅加载支持安全连接的网页元素,所有不使用 HTTPS 加载的图片、脚本等元素全部都会被过滤。虽然这样做可以极大增强浏览的安全性,但是很有可能会让很多网站无法正常显示,所以此功能请谨慎使用。
HTTPS Everywhere 设置
LastPass 是一款较为著名及常用的密码管理器。使用密码管理器可以为每个网站生成、储存并填充非常复杂难记的密码。这样做的好处是可以避免您在某个网站的密码泄漏后该密码被用来尝试登陆您在其他网站使用相同密码的帐号。同时,密码管理器还可以节省记很多密码的麻烦。当切换到不同的设备时,只需要在该设备上登陆密码管理器即可自动填充所有网站的密码。LastPass 同时还有两款手机应用分别可以做到在手机管理和填充密码以及管理六位数的两步验证一次性密码。
LastPass 填充 Google 登陆信息
与之相似的密码管理器还有 1Password 等,可以自行尝试各种不同的软件寻找最合适的密码管理器。
Privacy BadgerPrivacy Badger 是一款可以自动学习并屏蔽跟踪器的扩展,同样为 EFF 所开发。与传统的跟踪器黑名单不同,Privacy Badger 通过观察域名的行为来自动学习哪些网页域名是跟踪器的域名并且自动屏蔽这些域名。
以下是 Privacy Badger 对 Microsoft Docs 某个页面显示的屏蔽设置,其中对 github.com 的规则是默认的自动屏蔽第三方 Cookie,而对已知为跟踪器的 www.google-analytics.com 域名则采取完全屏蔽。这些设置可以手动调整,也可以通过浏览让 Privacy Badger 自动学习。
Privacy Badger 设置
相信很多人都在阅读部分网站的服务条款之前就盲目点击了 “我同意”,我也不例外。按道理说,这并不是一个好习惯,例如当您了解到 2019 年 Discord 在服务条款中加入了新的段落以防止您起诉 Discord 售卖您的数据时,您可能就像我一样不会那么想继续使用 Discord 了。原则上来说,用户既有阅读服务条款的义务,也应该阅读服务条款来判断是否应该使用某项服务。
然而,大多数网站和软件的服务条款都充斥着法律用语,极难阅读和理解。Terms of Service; Didn’t Read(TOSDR)这款扩展包含了许多网页简化版的服务条款,并给网站的条款打上一个评分,让您很容易就能了解该网站的服务条款是否对用户有利。
下图中展示的就是 TOSDR 显示的精简版的 GitHub 服务条款,详细地列出了条款中各个对用户有利和不利的款项,很容易就能看出该网站的条款中有哪些不足。同时,TOSDR 还给 GitHub 的服务条款打了一个 B 的评分,显示该网站的条款对用户较公平,但是仍有改进的空间。
Terms of Service; Didn’t Read 显示 GitHub 精简后的服务协议
uBlock Origin 是一款非常知名的广告屏蔽器,可以屏蔽网络上大部分的广告,让网站干净整洁。您可以自定义屏蔽列表,用自带的选取工具快速屏蔽某个网页元素,也可以用其自带的隐私保护功能保护浏览隐私。
(看下图背景猜我最近在玩哪款游戏)
uBlock Origin 状态页面
使用 uBlock Origin 时,我个人有两个推荐设置,可以到 Settings > Privacy 中勾选 Prevent WebRTC from leaking local IP address 以及 Block CSP report 来开启额外的 WebRTC 防 IP 泄漏保护以及禁用 CSP 报告。
uBlock Origin 隐私设置
选择广告屏蔽器时常有的另一个疑问是:uBlock Origin 和 AdBlock Plus 这两款扩展哪个更好?3D Insider 对此做过一个详细的对比,总结来说就是 uBlock Origin 会使用更少的资源,并且默认屏蔽所有广告。AdBlock 不仅会使用默认资源,而且默认不屏蔽所谓的 “可接受广告”,所以仍会显示一部分广告。
uMatrixuMatrix 可能是此篇指南中最硬核的一款扩展了,它可以让您自定义过滤每个网站上每个域名每种元素的加载。例如,您可以允许 Microsoft Docs 从 GitHub 加载图片,但是禁止其从 GitHub 加载脚本。除此之外,uMatrix 还可以伪造 Referer 字段以及 noscript 标签。
Microsoft Docs 页面上的 uMatrix 设置
虽然此扩展极为强大,但是其使用也极其繁琐。您可能需要一段时间才能学会如何使用此扩展,并且每到一个新的网站甚至页面都要手动调整该页面应用的规则,否则页面就大概率无法正确加载,功能也无法正常使用。如果您像我一样愿意花额外的精力和时间来调试每个网页以保证隐私和安全,该扩展则是您不二的选择。
开发和实用性扩展 Cookie Quick Manager一款 Cookie 编辑器,相较于 EditThisCookie2 的好处是可以全局搜索 Cookie。
Dark Reader浏览器的夜间模式扩展,我一般使用日间模式加上以下设定。同时需要注意一下这款扩展主要用 Filter、Static 和 Dynamic 三种模式,其中 Filter 模式最快,并且效果可观,但是可能让某些网站显示出错;Static 模式我个人并不喜欢用,因为效果很奇怪;Dynamic 模式虽说更不容易让页面崩坏,但是会显著提高页面加载速度,并且在开了很多标签页后会令浏览器卡顿。
DownThemAll!一款可以列出网页上可以下载的资源链接(图片,视频等)的扩展,和 Chrome 上被下架的 DownThemAll 扩展如出一辙。
EditThisCookie2Cookie 编辑器,和 Chrome 上的 EditThisCookie 一模一样。
Export Tabs URLs可以列出所有打开的标签页的 URL,批量复制标签页地址很方便。
FoxyTab标签页增强扩展,可以右键标签页进行各种操作。
Get Website IP显示当前网站的 IP 地址,省去了手动 DNS 查询,并且保证了在网站有多个 CDN 的情况下得到的 IP 地址和实际访问 IP 地址一致。
HTTP Header Live实时监控所有 HTTP 请求的 Header 字段,并提供保存功能。
HackBar提供了在渗透测试时会使用到的各种功能,例如添加自定义 Referer 字段/Cookie/User-Agent、计算 MD5/ROT13/URL/Base64 编码等。
Multithreaded Download Manager多线程下载器,在下载大文件时使用多线程下载,极大提高通量(throughput,有时也被松散翻译为带宽)利用率。
Offline QR Code Generator离线 QR 码生成器,可以快速生成当前 URL 的 QR 码或者任意内容的 QR 码,需要从桌面电脑分享网址给身边的朋友的时候非常好用。该扩展也有更高级的使用方式,例如根据 ISO/IEC 18004:2015 标准手动生成 Wi-Fi QR 码等。
Proxy SwitchyOmegaChrome 上著名的代理管理软件的 Firefox 移植版本。
SingleFile将整个网页保存为一个 HTML 文件并且完整保留网页的原貌。
Tamper Data for FF Quantum网页请求篡改器,可以拦截并篡改任意 Firefox HTTP 请求。
Tampermonkey人尽皆知的网页脚本框架,可以从 Greasyfork 等网站安装各类脚本来自定义网页。
Tweak New TwitterTwitter 简化扩展,可以让 Twitter 通过时间顺序显示 Tweet、删除 “Trends” 版块、分开显示 Tweet 和 Retweet 等。目前该扩展还在早期开发阶段,不是非常稳定。
User-Agent Switcher and Manager快速切换 User-Agent,在很多时候非常好用,例如用 Windows 的 UA 访问 Windows 下载页面,则页面会显示下载升级工具的链接;而将 UA 改为 Linux 之后,即可显示下载 Windows ISO 镜像的链接。
Wappalyzer非常强大的网页框架识别扩展,可以识别网页后端使用的服务器操作系统、开发框架等。例如下图中 Wappalyzer 就例举出了 Twitter 使用的框架等信息。
Wappalyzer 显示 Twitter 框架和其它信息
十分强大的网页开发辅助工具,可以对页面进行各种调试,也可以在申请软件试用的时候通过 Populate Form Fields 功能自动填充表单。
Web Developer 主界面
Technical Controls for a Secure Open Banking Initiative
Taking a Human Approach to a Global Crisis
TCTF 2020 Web Writeup partial
今年 TCTF Web 题目比原来要多,但还是那么强(做不出来
easyphp这道题被非预期了,正确解法也是在看到一叶飘零的
欢迎各位关注我的视频号,会有一些好玩的AI产品和不一样的分享。
TCTF/0CTF 2020 Writeup
又是一年 0CTF, 这次一个人一队单刷一次, 做出了两题 WEB, 可惜只输出了一天, 第二天还要赶 ddl, 还是太蔡了 orz
【新书推荐】互联网安全建设从0到1
Android tcpdump TCP 抓包
Apache Dubbo Provider默认反序列漏洞复现(CVE-2020-1948) - Zhengjim
全面了解风控策略体系
一步步教你制作移动式银行卡信息读取器
武学大家治学传承赏析
再谈离职留人的难处和经验
第五空间 2020 Web Writeup
非预期解法:
$_SERVER['QUERY_STRING']; 未进行解码操作,可以直接绕过读 /var/www/html/flag.php
Siri终于可以帮我浇花了
互联网安全建设从0到1 发售
自动化测试工具Appium初探
前段时间由于给小破站开启了青少年模式,结果密码给忘记了。导致只能看一些学习课堂和书法之类的相关视频。虽然有找回密码选项,但是找回密码需要发送本人手持身份证的照片。而后在输入密码的时候试了多次,除了提示”密码输入错误,请重试”外,没有其他限制,也没有网络请求。由于是4位的数字密码,我想如果我写个自动输入密码的脚本,利用生成0000~9999的密码字典,应该就可以找到正确的密码。