Remove Disqus

EFF Privacy Badger

前陣子有整理了一下部落格的東西,大致上作的事情是:

  • 拿掉 Google Analytic
  • 拿掉所有的 SNS 按鈕
  • 拿掉 Disqus
  • 換 web font 服務

首先是拿掉 Google Analytic 這件事,其實我已經想很久了,一部分原因是不想餵資料資料給 Google,另一個原因則是剛好現在舊的 Universal Analytic 已經停用了,一定要改成用 GA4,所以趁這個機會就乾脆的拿掉了,不過還是會好奇哪些內容比較有人看,所以又花了點時間研究了 web log 分析軟體,因為不想多架服務,老牌的 AWStats 介面現在實在是無法接受,所以現在選的是 goaccess 當成 terminal 工具來用,不過它其實還蠻強的,選項很多,要當成服務跑也可以。另外就是如果還是偏好前端的追蹤, Twitter(現在的X) 上也有朋友推薦了 GoatCounterumami,分別是 golang 和 js 寫的服務,有開源也有線上的服務,有限度的服務使用額度,當然自架的話也可以,不意外的都需要資料庫,非開源專案的話也有一個 Plausible 看起來不錯。

第二個是 SNS 按鈕,其實以前有三個按鈕,分別是 Google+、Facebook 和 Twitter,然後我都是用 iframe 掛上按鈕的,這樣比較不用擔心直接掛第三方 js 的各種問題(隱私、安全),不過 Google+ 收掉了,FB 按鈕因為 Firefox container 的關係我其實也都看不到,後來忘了什麼原因也拿掉了,最後只剩下 Twitter 的,結果最近發現我掛按鈕使用的那個 Web Intent 也被改的無法在 iframe 內顯示按鈕了,所以就乾脆的剩下的全拿掉,最後只留下一個用 Web Share API 的按鈕。

然後是 Disqus,其實留言系統原理簡單不難,但是真的要做的話也是很麻煩,一來要有資料庫,這樣現在很多的靜態網頁產生工具就先死一票了、二來還要有能檔 spam 的能力,所以 Disqus 的出現真的是補了一個很大的缺口,我以前是很喜歡 Disqus 的,畢竟它是這種需求數一數二的先行者,該公司的工程師也很認真的研究 3rd party script 的技巧,我現在工作也有一部分是在寫 3rd party script,對此有興趣之餘,也對於這東西的麻煩之處很有感,不過現實就是開公司就是還是要賺錢,所以慢慢的它也是走向我比較不喜歡的方向,開始大量收集資料,然後甚至有人說開始有插入廣告了,不過除此之外,更大的一個原因是在我這邊的使用率實在太低,如果都沒人用的話,一直掛著也只是訪客被收集資料而已,於是我決定把整個迴響區塊都拔掉,帶來的副作用當然就是以前一些少數的留言也都消失了。

我在拿掉迴響後沒兩天,就剛好看到 HackMD 也拿掉 Disqus 的消息,跟著原推文下去找其實也有不少的替代方案,像是 cusdis、用 GitHub 的 giscusutterances 等,其實 Wappalyzer 上也有些替代方案(然後也可以看到 Disqus 佔有率目前還很高)。

其實還有另外一種類型的替代方案,就是去支援新的 protocol,像是 ActivityPubWebmention ,第一次看到 ActivityPub 加上靜態網站產生器的方案時,我就想起以前消失在 spam 的洪流之中的 trackback 機制,不過靜態網站產生器和 ActivityHub 相性不是那麼好,它其實也是和留言系統一樣,需要有 API endpoint 和資料庫,所以有辦法做到支援的選擇也沒很多,相關的服務和專案也相對不成熟,還需要不少手工;另外一個選擇 Webmention,則可以參考 Jason 的「透過 webmention 來搜集 blog 的社群迴響」,基本上是可以透過第三方服務來弄成純前端的方案。

最後一個就是 web font 了,其實本來沒有要調整這塊,只是上面幾項改完,發現網站幾乎要沒有追蹤器了,只剩下 Google Fonts 相關的 request,Google Fonts 一直是被歸類為潛在的追蹤器,實際上到底有沒有被偷偷用來當做追蹤器也無法證實,總之我就試著尋找替代方案,一開始想的是自己放檔案,因為我只有用到兩個英文字型,不過結果大小差了 10 倍,不進一步調整不行,就在這時候看到了 Laravel 因為 GDPR 的關係改用 Bunny Fonts 了,大概研究了一下,bunny.net 本身是 CDN 服務商,而 Bunny Fonts 就是主打無追蹤,所以 GDPR 沒問題,另一個特點就是介面和 Google Fonts 相容,也就是說只要把 domain name 換掉就好(我的狀況是還有 CSP 要修改)。

然後最後的結果就是如文章上面的圖片一樣,現在大部分頁面,EFF Privacy Badger 的檢查結果已經是沒有需要阻擋的東西了,只有部分文章有內嵌 Tweet 或 YouTube 影片的,就還是會顯示有潛在的追蹤器。