工程師揭開知乎匿名背后的秘密

匿名者

大家都希望知乎變成一個知識的圣地,一個安定美好的生態(tài)圈蜕劝,但有人的地方就有江湖,這里有的是看不見硝煙的文字的斗爭轰异,明爭暗斗岖沛,箭撥弩張,好不熱鬧搭独。

知乎的匿名功能為社區(qū)的戰(zhàn)斗提供了一個很好的平臺:

優(yōu)勢

  • 有些用戶比較含蓄婴削,他們并不喜歡在觀點(diǎn)后面署上自己的大名。

  • 讓用戶自由的表達(dá)牙肝,網(wǎng)絡(luò)上因?yàn)槟承┭哉摱钌瞎偎镜睦铀匾姴货r唉俗,匿名的回答削減了用戶的顧慮嗤朴。給他們一種說出去的話,潑出去的水虫溜,與自己無關(guān)的錯覺雹姊。

  • 當(dāng)我們在表達(dá)某個觀點(diǎn)時,有沒有因?yàn)樯钏际鞈]又把這個觀點(diǎn)咽下去了衡楞?甚至以后回頭自己還會對當(dāng)時自己的想法感到奇怪容为。匿名的回答,正好把當(dāng)時沒經(jīng)過深思熟慮的想法記錄下來了寺酪。
    一言以敝之坎背,知乎接納每一個用戶,任何時刻的表達(dá)寄雀。

弊端

  • 透露一些重要的本身應(yīng)該被保密的信息得滤;

  • 發(fā)送不良的信息;

  • 對一些事情進(jìn)行錯誤的評價盒犹;

  • 對提問者進(jìn)行人事攻擊等等懂更。

匿名真的為這些不良的行為提供了一個溫床了嗎?知乎是個平臺急膀,自然會出臺一些政策來規(guī)范這些沮协,知乎的管理員也在一刻不停地瞞著處理知乎各種不和諧的事情。

官方條例

1卓嫂、我匿名問或回答一個問題慷暂,這個地球上誰有權(quán)限查看我是誰?

匿名用戶信息的查看只有一種方式晨雳,就是通過詳細(xì)分析數(shù)據(jù)庫中的源數(shù)據(jù)來判定行瑞。知乎團(tuán)隊(duì)能訪問數(shù)據(jù)庫的成員不超過兩人。匿名用戶的數(shù)據(jù)分別放置餐禁,且數(shù)據(jù)訪問的權(quán)限分離血久,也就是說,兩人配合才能分析數(shù)據(jù)帮非,才能查看匿名用戶信息氧吐。

2、 在知乎上用匿名回答或提問時末盔,用戶的隱私能否得到保障筑舅?

知乎保護(hù)匿名用戶的身份不會被公開。
知乎不贊成以評論或提問等方式去查找匿名用戶的真實(shí)身份庄岖。
用戶要對其發(fā)布的內(nèi)容負(fù)責(zé)豁翎,不允許用匿名的方式攻擊他人角骤、泄露他人隱私等行為隅忿。

真的除了知乎管理員心剥,其他人沒法獲取到這個匿名者是誰了嗎?知乎的這種匿名 是真的匿名嗎背桐?

破解匿名的鑰匙

匿名答案的產(chǎn)生

我是程序員优烧,不太相信別人是怎么樣就怎么樣,那就實(shí)際看看吧链峭!
勾選匿名以后畦娄,再點(diǎn)擊提交。知乎會發(fā)送這樣一個請求

請求urlhttp://www.zhihu.com/answer/add

請求參數(shù)

id:2735494
content:誰會去記憶代碼呢弊仪?只會學(xué)習(xí)思路和記住關(guān)鍵API熙卡,記不住也可以去查嘛!<div><br></div><blockquote> 但是你得記住去哪查詢API</blockquote>
anon:1
_xsrf:c54bc4dd7609ba693921ba540b241d87
  • ID 為答案的唯一標(biāo)識
  • content 為答案的內(nèi)容
  • anon 表示匿名
  • _xsrf 唯一標(biāo)識励饵,用來防止跨站攻擊和請求偽造驳癌,該值會寫在cookie中

匿名答案ID

答案添加后,系統(tǒng)會給該答案生成一個 ID : 32878799

<a class="answer-date-link meta-item" target="_blank" 
href="/question/26381561/answer/32878799">發(fā)布于 22:36</a>

每個問題都會有一個唯一標(biāo)識役听,每個答案也是颓鲜。答案和答題者的關(guān)系呢透绩?自己回答的匿名問題鲫惶,同樣不能給自己點(diǎn)贊辆它,所以說知乎的前端網(wǎng)頁還是有機(jī)制來判斷匿名回答者是誰表谊,但是在前端界面沒有保存答題者的信息的情況下诈泼,是怎么判斷你就是答題者的呢吼驶?

答題者的標(biāo)識

查看知乎的代碼炼鞠,有這樣一行

data-isowner="1"

非自己回答的問題戈擒,則為

data-isowner="0"

在每個界面會有這樣一段代碼來表示用戶的信息捂敌,

{
"user_created": 1383705658000,
"now": 1415025623000,
"abtest_mask": "---------1--------------------",
"user_hash": "cd37719b65d7a40e722e9f5d70e6faa2"
}

user_hash 就是用來表示當(dāng)前登錄用戶的 ID昭娩,唯一標(biāo)識,通過這個ID 就能獲取到用戶的信息黍匾。

如果能找到匿名答案的userhash栏渺,那就大功告成了。
雖然我已經(jīng)寫好了腳本锐涯,能夠抓取所有的知乎用戶信息和ID磕诊,一個答案的所有點(diǎn)贊者等等功能 ,但是沒法破解這個user_hash纹腌,用hash算法加密了這個數(shù)據(jù)霎终,需要一個密鑰才能解開答案,密鑰是什么呢升薯?誰知道呀莱褒。

非自己的匿名答案呢

比如這個答案
如何看待王滔不再擔(dān)任暢游 CEO,陳德文余楚媛接任涎劈?

看完所有前端代碼广凸,并沒有發(fā)現(xiàn)任何泄露答題者的ID 等信息阅茶。答題者的信息在后臺輸出的時候被過濾掉了,如果當(dāng)前用戶瀏覽的答案為匿名答案則把答案的作者變成了 "匿名答案" 谅海。

為匿名答案點(diǎn)贊

url : http://www.zhihu.com/node/AnswerVoteBarV2
請求發(fā)送的數(shù)據(jù)格式

{
    method:vote_up
    params:{"answer_id":"8524619"}
}

如果匿名答案被點(diǎn)贊了脸哀,系統(tǒng)同樣會通知答題者。奇怪的是扭吁,在自己的個人列表并不能看到自己的匿名答案撞蜂,怎么又能收到知乎匿名答案的通知呢。

我猜想:

知乎在設(shè)計數(shù) 答案據(jù)庫的時候 增加了一個 anon 字段侥袜,1為匿名蝌诡,0為非匿名,所有只要改變這兩個值就能讓答案在匿名和非匿名之間切換枫吧。

每個答案綁定一個用戶ID送漠,點(diǎn)贊時,傳給服務(wù)器的數(shù)據(jù)為答案的ID由蘑,系統(tǒng)根據(jù)答案ID查找到用戶的ID闽寡,然后通知用戶你的答案被點(diǎn)贊了。匿名用戶和非匿名用戶在這個功能上面沒有任何差別尼酿。

但是如果答案的 anon 為1時爷狈,后臺自動把用戶的信息變成了匿名用戶。想通過前端的代碼找到匿名答案是誰裳擎,真的是沒有辦法呀涎永,滴水不漏的知乎。
在輸出個人答案列表時鹿响,直接選擇anon為0的答案羡微,如果把匿名答案也輸出了,那其他用戶就有辦法找到匿名者是誰了惶我。

改進(jìn)

很多人在問妈倔,怎么找到我的匿名答案呢?似乎知乎目前沒有加入這個功能绸贡,也沒人知道他們的開發(fā)計劃盯蝴。不過確實(shí)可以加入這樣一個功能——“我的匿名答案”,這個功能只開放給當(dāng)前登錄者听怕,就像只有你自己能修改自己的賬號密碼一樣捧挺,這不是很好么!

結(jié)論

知乎官方的說法:兩人配合才能分析數(shù)據(jù)尿瞭,才能查看匿名用戶信息闽烙。對于這個觀點(diǎn),我持懷疑態(tài)度声搁,后臺沒必要把功能做得這復(fù)雜黑竞,自己建立的系統(tǒng)捕发,當(dāng)然會給自己絕對的控制權(quán)限。

對于普通用戶來說摊溶,知乎的匿名為真匿名爬骤, 我跪服了充石。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末莫换,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子骤铃,更是在濱河造成了極大的恐慌拉岁,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惰爬,死亡現(xiàn)場離奇詭異喊暖,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)撕瞧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門陵叽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丛版,你說我怎么就攤上這事巩掺。” “怎么了页畦?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵胖替,是天一觀的道長。 經(jīng)常有香客問我豫缨,道長独令,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任好芭,我火速辦了婚禮燃箭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舍败。我一直安慰自己遍膜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布瓤湘。 她就那樣靜靜地躺著瓢颅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弛说。 梳的紋絲不亂的頭發(fā)上挽懦,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音木人,去河邊找鬼信柿。 笑死冀偶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的渔嚷。 我是一名探鬼主播进鸠,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼形病!你這毒婦竟也來了客年?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤漠吻,失蹤者是張志新(化名)和其女友劉穎量瓜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體途乃,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绍傲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了耍共。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烫饼。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖试读,靈堂內(nèi)的尸體忽然破棺而出杠纵,到底是詐尸還是另有隱情,我是刑警寧澤鹏往,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布淡诗,位于F島的核電站,受9級特大地震影響伊履,放射性物質(zhì)發(fā)生泄漏韩容。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一唐瀑、第九天 我趴在偏房一處隱蔽的房頂上張望群凶。 院中可真熱鬧,春花似錦哄辣、人聲如沸请梢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毅弧。三九已至,卻和暖如春当窗,著一層夾襖步出監(jiān)牢的瞬間够坐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留元咙,地道東北人梯影。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像庶香,于是被迫代替她去往敵國和親甲棍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容