祕跡搜尋,一款不追蹤的搜尋引擎
今天,我們帶來了一個可以保護個人隱私的網路搜尋服務——祕跡搜尋。祕跡搜尋不會記錄使用者輸入的查詢關鍵詞,真正做到搜尋不留痕,徹底擺脫定向廣告的騷擾。
談到保護隱私,先來看看其他的網路搜尋引擎是如何獲取使用者隱私資訊的。因為當前中國大陸提供搜尋服務的搜尋引擎(還有國外的Google),都在使用相似的方法來獲取使用者隱私,所以在下文中我們用某某搜尋來統一替代所有其他追蹤使用者的搜尋引擎。
日常使用者使用某某搜尋引擎的過程,可以拆分成如下的幾個步驟來理解:
使用瀏覽器開啟某某搜尋網站的網址,輸入查詢關鍵詞。
某某搜尋網站返回搜尋結果資料的同時,還使用了各種追蹤使用者的黑科技,包括 tracking scripts, tracking pixels, tracking cookies 等等等等,來儘量精準地追蹤使用者在網際網路上的各種行為。
以後這個使用者查詢不同的關鍵詞,某某搜尋網站會利用追蹤技術,不斷收集和儲存他的搜尋甚至瀏覽行為資訊。不斷豐富地勾勒出這個使用者的興趣愛好、健康狀況、甚至家庭成員等等個人隱私資訊。

這些搜尋引擎在收集了眾多使用者畫像資訊後,最主要的商業變現方式就是定向廣告。下圖是某搜尋引擎廣告平臺上對其精準人群定向能力的宣傳,日均百億次的線上行為資料中很有可能就包括你的搜尋及點選行為。

而當一個使用者使用祕跡搜尋的時候: 1. 使用瀏覽器開啟 https://mijisou.com,輸入查詢關鍵字。 2. 發起的網路請求傳遞到祕跡搜尋的伺服器上。但是祕跡搜尋的伺服器沒有記錄使用者的任何資訊(不光沒有記錄使用者輸入的檢索詞,從使用者瀏覽器中帶過來的IP地址、UserAgent、HTTP Header等資訊,也統統沒有記錄)。 3. 最後,祕跡搜尋將結果資料返回給使用者的瀏覽器。 祕跡搜尋沒有儲存任何的使用者資訊,也沒有使用任何追蹤使用者的黑科技(tracking scripts, tracking pixels, tracking tags),甚至連瀏覽器Cookie都沒有使用, 也就自然不會洩漏使用者的隱私資訊了。

說完了其他搜尋和祕跡搜尋的區別,我們再來看看很多網民常見的一個疑惑:很多瀏覽器都帶有隱身模式或者無痕模式,在隱身模式下使用某某搜尋,使用者的隱私資訊還會被洩漏嗎? 其實這個答案就寫在隱身(無痕)模式的的提示中,見下圖。瀏覽器的隱身模式只是不在你的電腦上留下瀏覽痕跡和歷史記錄,但是它不會阻攔你訪問的網站收集你的個人資訊,也就是說只有祕跡搜尋才是真正的無痕搜尋。

從上面的對比分析中,我們可以清楚地看到對於使用者的隱私保護,祕跡搜尋並沒有用太過神奇的黑科技,只是在嚴格遵循一條隱私原則:不儲存和記錄任何可以關聯到使用者身份的資訊。下面我們會重點介紹一下為了嚴格執行上述隱私原則,祕跡搜尋在技術實現上所做的實踐和嘗試。
沒有Cookie的搜尋引擎
說起Cookie, 可能對於熟悉技術的朋友都不會陌生。簡單的說,cookie就是:網站為了記錄使用者的狀態資訊而在使用者的瀏覽器裡儲存的資料檔案。Cookie的發明本是用來優化網際網路服務體驗的,但是現在越來越多的網站將它用來進行使用者身份追蹤。對於祕跡搜尋服務,如上文所述,我們沒有在使用者的瀏覽器裡種任何Cookie。這一點只要你開啟瀏覽器的開發者工具就可以看到,見下圖。

從上面的對比分析中,我們可以清楚地看到對於使用者的隱私保護,祕跡搜尋並沒有用太過神奇的黑科技,只是在嚴格遵循一條隱私原則:不儲存和記錄任何可以關聯到使用者身份的資訊。下面我們會重點介紹一下為了嚴格執行上述隱私原則,祕跡搜尋在技術實現上所做的實踐和嘗試。
沒有Cookie的搜尋引擎
說起Cookie, 可能對於熟悉技術的朋友都不會陌生。簡單的說,cookie就是:網站為了記錄使用者的狀態資訊而在使用者的瀏覽器裡儲存的資料檔案。Cookie的發明本是用來優化網際網路服務體驗的,但是現在越來越多的網站將它用來進行使用者身份追蹤。對於祕跡搜尋服務,如上文所述,我們沒有在使用者的瀏覽器裡種任何Cookie。這一點只要你開啟瀏覽器的開發者工具就可以看到,見下圖。

提供匿名訪問功能
除了提供搜尋服務外,祕跡搜尋對於檢索到的結果還提供匿名訪問功能,見下圖所示。

匿名訪問功能本質上是一個代理服務,比如你想訪問祕跡搜尋結果頁中的 www.a.com 網站,如果通過匿名訪問來瀏覽, 我們會通過代理服務(proxy.mijisou.com,這個代理服務是祕跡搜尋自己的獨立服務,依然不會記錄任何請求日誌)去獲得www.a.com網站上的有用資訊,然後再把有用資訊中轉展示給使用者。 這個代理服務會完全保護使用者免受各種追蹤和搜擾。 但是在目前階段我們的匿名訪問的相容性還需要完善。對於部分網站,有時候還會出現亂碼和服務請求超時等問題。我們的程式設計師小哥哥正在不斷優化這些服務,如果在使用過程中碰到這些問題,敬請諒解或者反饋給我們。

如果不收集使用者資料,那我們是如何統計搜尋訪問量的呢?
每個網站都會統計使用者訪問量,為了準確的統計出每日使用者請求數,在不收集任何使用者資訊的前提下,我們在search.conf 配置檔案中增加了如下命令語句: access_log /var/log/nginx/search_access.log searchformat if=$arg_q (祕跡搜尋的請求引數是q, 所以才使用$arg_q這個變數), 用白話翻譯就是說只有使用者真正使用祕跡搜尋發起一次搜尋請求時,我們才會根據searchformat 這個日誌格式來記錄日誌。searchformat 的格式 : log_format searchformat '$status $time_local $http_host site="$server_name"(在Nginx.conf檔案中配置) ,每條使用者請求的真實日誌如下所示。
200 23/Oct/2018:21:36:58 +0800 mijisou.com
可以看到祕跡搜尋沒有記錄任何有關使用者個人資訊的欄位, 我們使用上述方法做到了不記錄任何使用者請求資訊的同時,又可以準確統計出祕跡搜尋的每日訪問量。未來我們也希望可以實時公開搜尋服務的日誌,甚至能夠做到將整個運維操作實時公開,這些後續目標在我們的todo list 中,敬請期待。
網際網路和大資料技術帶來便捷生活體驗的同時,也帶來了種種亂象: 精準的使用者畫像被用來做大資料殺熟、網路上的定向廣告比單元樓裡貼上的小廣告還要可惡,網民的個人資訊在黑市上、在各種網際網路廣告公司手上交易、販賣。面對這樣的現實,我們希望能夠盡一點微薄之力,能夠守護一絲網民的隱私資訊。如果你也有這樣的想法,快來聯絡我們吧。
PS: 為了保證我們服務的公開透明,目前我們特意選用了一個開源的j解決方案,而且我們基於其上的改進也同步開源出來。這樣任何組織或者個人,都可以部署一套這個服務,給你自己或者你的家人、朋友使用。只要你部署的這個服務有足夠多人使用,就可以確保自己的搜尋關鍵字無法被跟蹤。當然,你的部署如果只有你自己一個人用,就沒有意義了。可以說,越多人用的話,搜尋行為資料就被保護的越好。道理很簡單,大隱隱於市。