GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Untitled attachment

Download link

https://img.bgme.me/media_attachments/files/109/736/944/764/411/403/original/58308c04d28c6a79.png

Notices where this attachment appears

  1. Embed this notice
    毛茸茸生长 :trans_flag: (bgme@bgme.me)'s status on Monday, 23-Jan-2023 15:16:00 JST 毛茸茸生长 :trans_flag: 毛茸茸生长 :trans_flag:

    【基于GeoIP的代理分流模式的安全隐患】

    基于GeoIP的代理分流模式存在极大的安全隐患。
    国内直连,国外走代理,听起来好像不错,但代价就是:任何一个国内网站,只要想做,都可以知道你有没有挂梯子,你国内IP、梯子IP是什么。

    下面是对该问题详细讲解。
    据我所知,现在很多的代理软件都采取默认全走代理,绕过中国IP、中国域名、局域网IP这样的分流策略。但这种白名单式的分流模式是存在极大的安全隐患的。

    如图一所示,如果一个国内网站想知道访问者有没有使用代理,那它可以采取这样的探测策略。在大量正常的第三方请求中,夹杂一些非中国IP、非中国域名的请求。
    如果访问者使用的是采取上面所说的白名单分流模式的代理,那么这些非中国IP、非中国域名的探测请求就会被分流至国外代理服务器进行访问。
    这样一来,网站便可以知道该访问者是否使用了代理,该访问者国内IP是什么,该访问者墙外的代理IP是什么。

    感兴趣的读者可以手动模拟一下上述的过程。
    一切开始之前,先访问一下 http://myip.ipip.net/ ,获得自己当前IP。
    然后在国内网站,比如说 https://www.baidu.com/ 、https://www.bilibili.com/ ,运行下面的 javascript 代码。
    确认一下,控制台输出的IP地址是否与上一步获得的IP一致。

    ```
    (async ()=>{console.log((await (await fetch("https://www.cloudflare.com/cdn-cgi/trace", {"mode":"cors"})).text()).split('\n').filter((x)=>x.startsWith('ip=')).map((x)=>x.replace('ip=','')).join(''));})()
    ```

    再进一步讲,黑名单分流模式也存在同样的问题,通过精心选择的探测域名同样可以达到探测的目的。

    为了安全考量,也许根本就不应该进行分流,要么全部直连,要么全走代理。
    使用两个浏览器,一个全部直连,一个全走代理,国内网站使用直连浏览器访问,国外网站使用代理浏览器访问。可以在一定程度上缓解这个问题。

    另外,从这里也可以看出屏蔽第三方请求的重要性。
    如果使用 uBlock Origin 插件的嘟友,可以参考wiki,将屏蔽模式设为 Hard 模式。
    https://github.com/gorhill/uBlock/wiki/Blocking-mode:-hard-mode

    In conversation 2 years ago from bgme.me permalink
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.

Embed this notice