文章
技术

怎样看待所谓「不记录IP、不搜集用户信息」这类声明 (纯技术讨论)

原帖见树洞 https://2049bbs.xyz/t/3699 本帖是纯技术部分, 谢绝碰瓷转水

首發 Matters

不少网站(包括NodeBE4论坛)承诺不记录IP不搜集用户信息,甚至公开自己的源代码来证明自己不记录IP等信息。作出这样的承诺,甚至公开源代码都是很好的。但是承诺和开源就能证明网站不记录你的IP等信息吗?再好好想想。

一句话:这是个无法证明的承诺。

懂技术的和不懂技术的对所谓网站不记录访问者IP这句话的理解可能差十万八千里。

在很多不懂技术的人看来,「一个网站不记录访问者IP」好像意味着自己在这个网站的时候是完全匿名的,世界上没有任何人知道自己的IP地址。更有甚者,一些不懂技术的朋友会以网站是否开源、是否作出这样的承诺来判断这个网站是否保护使用者的隐私,甚至用这个标准来研判网站的安全性。

下面,让我们来逐一破解所谓「不记录IP、不搜集用户信息」的神话:

神话1:网站不知道你的IP地址

No,你访问任何一个网站都知道你完整的IP地址,否则你根本无法访问这个网站。当然,你可以用代理、VPN、TOR去掩盖自己的真实IP,但是你访问的网站是知道你的出口IP的。任何一个网站如果自称不知道你IP地址,那它一定是骗子。

例外,某个Wordpress或Blogspot上的博客,比如编程随想的博客,编程随想本人并不知道访问者的IP地址,但是blogspot知道且记录访问者的IP地址。

神话2:只要网站不记录你的IP地址,就安全了

No,知道你IP地址的可不仅仅是你访问的网站,还有你的ISP、DNS服务器。这篇文章用快递包裹来比喻互联网上的数据包传输,实在再恰当不过。你去淘宝下单时,知道你收货地址的只有网店老板吗?不,淘宝网、快递公司、海关、各种安检、你家小区门卫大爷,全都知道这个包裹的收件人和收货地址。访问网站同样,即便网站真的不把你的IP地址告诉任何人,这中间还有一大堆ISP、DNS服务器、防火墙等等知道你访问了这个网站。否则,你以为金盾工程、防火长城装在哪儿?

除了你和被你访问的网站,还有很多中间环节都知道你访问了某个网站。要保证安全,得靠https、VPN甚至Tor等带有加密属性的措施,让这些中间环节不知道你真实的目的地。

神话3:如果网站不记录访问者IP地址,只要关掉浏览器网站就不知道自己的IP地址了。

Bullshit! 基本上所有的网站服务器都会保留访问日志,访问日志会详细记录你的IP地址,浏览器,操作系统等信息。

有人会问如果网站用了Cloudflare这样的CDN那就掩盖双方的真实IP了。错!Cloudflare官方网站有N篇技术文档教你怎样获得用户的真实IP。

所有的网站服务器都会记录访问者的IP地址,浏览器等信息,无论你是否登录。区别只有这个记录会保留多久,有的是几个小时几天,有的可能是几年。

如果一个网站承诺不记录你的IP地址,它实际的意思是不会永久保留你的IP地址。

神话4 经过技术人员验证,某网站公开的源代码的确没有保留访问者IP地址,所以网站不会记录访问者的IP地址的承诺是真的

Naive! 首先,网站公开的源代码不一定是它实际部署的代码,实际部署的代码你没有办法看到,只有网站后台管理员能看到。

其次,记录访问者IP地址的操作并不需要在网站源代码里实现。对IP地址的记录这种操作是由更底层的服务器软件实现的,比如前面提到的保留服务器的访问日志就根本不需要网站代码来实现。是的,在网站源代码的层面可以不记录你的IP地址,但是更底层的服务器软件还是会记录你的IP地址。服务器必须知道你的IP地址才能为你服务!

那我要怎样才知道一个网站是否记录访问者的IP地址呢?

很不幸,根本就没有办法确切地知道。如果一个网站承诺不会记录你的IP地址,你只能选择相信或不相信,没有任何办法知道他是否遵守了承诺。

那要怎样才能保证自己的安全呢?

只有在自己的电脑上下功夫才能保证自己的安全,无论是VPN,Tor,双虚拟机,前置代理,后置代理,消除浏览器指纹的Tor Browser等等。

不要轻信陌生人的承诺,也不要迷信开源。

原帖部分回复

2楼

有注意到 @懦夫斯基 在持續性的誤導論壇使用者對隱私保護的認識,鼓吹品蔥所謂開源不記錄用戶IP的神話,她這種觀點和言論在我退蔥之前幾個月就有,無論是確實因爲技術白癡,還是有意誤導,隨着她的影響力擴大,她的錯誤觀點已經造成嚴重的安全性隱患。

爲了駁斥和彌補這種流行的錯誤觀點帶來的危害,特寫此文,打臉那些迷信「開源和不記錄IP」的神話。

給大家交個底,我從來不直連任何網站,無論是否以任何帳號還是完全匿名瀏覽,我都從來不直連品蔥、2049bbs、matters、包括我自己建立的網站。傳播錯誤觀念的人,造成的實際效果跟釣魚無異。

從來都是用Tor、或VPN+Tor、Tor+VPN等方式訪問這個圈子裏瞭解到的一切知識、一切網站,never ever裸奔。

你的瀏覽器和網站之間還有無數個路由器、防火牆、DNS服務器、網關等設備,即便是你身在海外,這些設備和網絡運營商都可能有漏洞,都可能有間諜僱員或者被黑客攻擊控制,就連CIA內部都可能有中共間諜或者被中共黑客入侵。

跟你的政治觀點相左的人甚至跟你在網上鬥得死去活來的「敵人」,有可能就在Google、Cloudflare、虛擬主機和域名提供商內部工作,也有可能他就在信用評級機構或者數據分析公司工作。一個掌握你個人信息的人,只要用心想,總能找到那種巧妙、無蹤跡的方法泄漏你的個人信息,對你造成傷害。

認爲自由世界的互聯網就是安全的這種觀點,是完全錯誤的,十分愚蠢的。

BE4 at 2020-03-25

4楼

站在用戶的角度,從安全性上來說,以下模式沒有任何區別

開源+不記錄IP的申明 (品蔥、2049) = 不開源 + 不記錄IP的申明 (NodeBE4) = 開源+記錄IP = 不開源 + 記錄IP = 不開源 + 記錄IP + 記錄瀏覽記錄 (matters) = 不開眼 + 無任何申明

因爲根本不可能驗證。

正確的思維方式是,根據你活動的性質決定是直連,還是虛擬機+Tor,還是非虛擬機 Tor Browser。 正確的方法是多參考PrivacyTools, Prism Break 等隱私工具和策略,而不是聽網紅吹。

順便說一句,Brave Browser已經被PrivacyTools.io Delist了,因爲其隱私保護標準不合格。

BE4 at 2020-03-25

28楼

totally agree

但是我补充一点

开源比不开源好,因为如果不是应用程序本身记录ip,而是像cloudflare等防火墙记录的ip,关联发言账号和ip是不太容易的,几乎不太可能。

因此,对于应用程序,还是要开源,而且遵守开源协议也是对源程序的基本尊重。

小二 at 2020-03-26

29楼

@小二 #28 文中已经提到了Cloudflare可以提供访问者真实IP。Cloudflare官方为常见的服务器平台提供获得访问者真实出口IP的插件,随便搜一下关键词就能找到官方文档,这些插件都是配置在服务器平台层面。cloudflare隐藏IP的功能是单向的,只对访问者隐藏服务器IP,对服务器并不隐藏访问者IP。

如果是登录用户,用论坛数据库很容易匹到服务器访问记录。服务器访问日志记录每条访问完整的请求路径、来源IP、访问时间。论坛数据库包含登录用户每一条留言、赞踩的时间和先后顺序。很容易匹配出哪条访问日志对应到哪个登录用户。品葱的时间模糊很可能只是前台显示的模糊,而非真实数据库的模糊。即便是真实的数据库记录时间模糊,数据库还是保留了每条记录真实的产生顺序。对于登录用户而言,记录产生的顺序跟服务器日志的顺序是相同的,只要有几十条记录就能匹配出服务器日志里的记录。这些匹配甚至可以用独立于论坛应用程序的第三方软件实时实现。

如果论坛应用记录浏览历史,像matters那样,那么非登录用户也能很容易的被匹配出来。

所以,只要是裸奔的用户,无论网站应用软件如何不保留用户IP,都非常容易精准还原其常用登录IP和访问设备。因为裸奔用户的IP基本上是固定的,而且如果用户用不同的设备登录网站,常用设备也很容易被还原出来。 BE4 at 2020-03-26

30楼

对了,纠正一下4楼的表述错误,NodeBE4用的是开源论坛软件,NodeBB

BE4新闻站的源代码会在适当条件下开源,现在只有4、5个活跃用户,现在我一开源别人直接拿去建个一模一样还是一级域名的网站,那我不是成了凯子了?新闻聚合类网站的价值只有在有足够数量和质量的活跃用户之后才难以被抄袭。除非有人能提出更有说服力的理由,否则肯定是要等一个足够健壮的用户社区形成之后才会开源。

初始源代码的AGPL协议,那个代码问题很多,基本上都被我重写一遍了,今后多半会换个技术架构重写一个。 BE4 at 2020-03-26

菜单
  1. BE4  

    麻烦管理员转到技术类

  2. BE4  

    相关技术贴

    1. 流量跟踪码是什么,有什么危害,是否等同于钓鱼 https://2049bbs.xyz/t/3865
    2. 技术白痴“碰巧”推动了某站一个不起眼的改动 https://2049bbs.xyz/t/3961

    感谢管理员帮忙更改分类

  3. Hker  

    你就是傳說中的BE4嗎@@ 友站還在天天幻想你的小號迫害她們

  4. BE4  

    @Hker #3 友站洗粉日常

  5. BE4  

    @Hker #3 本帖只讨论技术,要讨论友站请到主贴 https://2049bbs.xyz/t/3699 或者NodeBE4

  6. BE4  

    补充一条编程随想博客留言区的对话

    https://program-think.blogspot.com/2020/03/VirusTotal-Tricks.html?comment=1585440916131

    34