大家都希望知乎變成一個知識的圣地,一個安定美好的生態(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ā)送這樣一個請求
請求url:http://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)限。
對于普通用戶來說摊溶,知乎的匿名為真匿名爬骤, 我跪服了充石。