利用 WebRTC 取得瀏覽器端的 IP address

TorrentFreak 上看到的:「Huge Security Flaw Leaks VPN Users' Real IP-Addresses」。

可以在「https://diafygi.github.io/webrtc-ips/」這邊測試,就算你在 NAT 以及 VPN 後面也可以取得真實的 Public IP 資訊。

Google Chrome 的使用者可以裝「WebRTC Block」阻擋 WebRTC,而 Firefox 則可以透過 about:config 的設定關閉 media.peerconnection.enabled 這個值:

目前還不太會用到 WebRTC,先擋起來之後再說...

要瀏覽器不要送出 Referrer 的 Referrer Policy

在讀「The No CAPTCHA problem」這篇的時候看到的:「Referrer Policy」。

<meta name="referrer" content="never">

目前正式版本的瀏覽器中,只有 Google Chrome 有支援,而其他瀏覽器正在開發,像是 Firefox 上個月才進 trunk:「Bug 704320 - Implement <meta name="referrer">」,預定在 36 版才會納入 (目前是 34)。

還蠻新的 HTML5 標準 (還在制定),可以來定期追進度...

Firefox 擋 Canvas Fingerprint 的套件

在「How to block Canvas Fingerprinting in Firefox」這篇終於看到擋 Canvas Fingerprint 的延伸套件了:「CanvasBlocker」。

關於 Canvas Fingerprint,可以參考之前「用 Canvas Fingerprint 取代部份 Cookie」這篇文章。

截圖看起來有點陽春 (設定的方式很 geek),不過算是個開始,之後應該會愈改愈好:

Google Chrome 上使用 Native Client (NaCl) 執行 Vim...

Twitter 上看到有人講:「Vim console application running using NativeClient」,實際跑起來長這樣:

只是跑起來測試,因為平常用的平台 (UbuntuMac OS X) 都有原生的 Vim 可以用...

這算是 Native Client 的火力展示嗎?

最佳化 nginx 的 TLS Time to First Byte (TTTFB)

在「Optimizing NGINX TLS Time To First Byte (TTTFB)」這篇文章裡在討論要如何讓 nginx 的 TLS Time to First Byte (TTTFB) 盡可能短。

可以看到文章裡面用到兩個方法,一個是修改 nginx 的程式碼縮小 TLS record size。我對是覺得頗危險,尤其是作者的改法不知道有什麼 side-effect... (要注意 nginx 裡面直接拿 NGX_SSL_BUFSIZEBIO_set_write_buffer_size 使用,這代表有可能還有其他的地方也是這樣搞?)

第二個方法是開啟 TLS False Start,目前主流的瀏覽器都陸陸續續支援了。

這是文章作者的測試:

可以看到時間減少的相當多。

現在是期望作者這篇文章的測試可以讓 patch 合併回 mainstream 後再用,這樣有比較多人 audit...

行動平台上的 Tor browser

在「The problem behind mobile TOR browsers' ip disclosure」測了四個行動平台的 Tor 瀏覽器,其中三個是 Android 上的,一個是 iOS 的。

四個瀏覽器測試的結果中,只有 iOS 上的 Onion Browser (要 USD$0.99) 可以在修改設定後達到最低限度「隱藏 real ip」的標準:

作者的建議是不要在行動平台上有太多期望,隱藏 real ip 只是其中一個環節...

用 BrowserSync 測試多個平台...

BrowserSync 是用 node.js 寫的工具,可以同時測試一堆 device,修改後不用按 reload,印象中已經有套件可以做類似的事情?

一般用 npm 裝就可以了:

npm install browser-sync

最簡單的方法是直接執行 browser-sync,執行後會出現像這樣的訊息:

<script src='//192.168.1.1:3000/socket.io/socket.io.js'></script>
<script>var ___socket___ = io.connect('http://192.168.1.1:3000');</script>
<script src='//192.168.1.1:3001/client/browser-sync-client.0.6.0.js'></script>

把這段程式碼貼到 body 的最後面就可以了,當 BrowerSync 偵測到檔案有更新時會透過 server push 機制重刷頁面。

另外,也可以產生 bs-config.js 修改設定:

browser-sync --init

更完整的說明可以從「Options」這頁找到。

Gmail.js

前幾天看到的「Gmail.js - JavaScript API for Gmail」,這並不是 Google 官方的 JavaScript API,而是給開發瀏覽器套件的人用的 JavaScript API。

甚至有給範例,讓你可以透過 Chrome Console 嘗鮮:

看文件發現比較特別的是提供了 Observe 的功能,可以抓到 Gmail 的事件 :p

Windows XP 上的瀏覽器...

微軟對 Windows XP 的支援到 2014 年 4 月 8 日:


出自「Support is ending for Windows XP - Microsoft Windows

Google Chrome 也宣佈只支援到 2015 年 4 月 (晚一年):「Extending Chrome support for XP users until April 2015」。

目前 Mozilla 還沒說什麼,不過應該也不會比 Google Chrome 長太久吧,畢竟 Windows 7 的市占率一直在提昇...