V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phithon
V2EX  ›  程序员

分享下我 Github 被封的经历

  •  2
     
  •   phithon ·
    phith0n · 2022-02-25 22:58:39 +08:00 · 5729 次点击
    这是一个创建于 1000 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近好像又有人 Github 被封,每隔一段时间就有。分享下我自己的经历吧,好几年以前了,也许还是有点参考价值。

    账号被封,查找原因

    那是 2017 年 12 月,有天早上起来突然发现自己的号phith0n登不上去了,具体的表现是:

    • 账号登录不上,登录以后明确告诉我我号被封了
    • Github 个人页面访问显示 404
    • 我自己名下所有项目,访问都是 404
    • 但是我创建的 Group 还是好的,没有受影响

    我当时也很不明所以,所以发了个微博吐槽,后来有人在评论区告诉我他收到了 DCMA 的邮件。是因为 fork 了一个项目,这个项目是一个破解软件,安全圈的不少人都因为 fork 这个项目收到了邮件或者被封了。

    我想起来我不久前也 fork 了这个项目。而且我还想起来我不是初犯了,我曾经还 fork 过另一个违反 DMCA 的项目,是某个大公司泄露的代码,当时第一时间我 fork 了,后来收到 DMCA 的邮件我没当回事:

    也就是说这次这个破解版的事件是我第二次违反 DMCA ,这确实是我的错误。我一直把 fork 项目当做是“保存快照”的步骤,所以我遇到一些我感觉可能会被删的项目我反而会把他 fork 下来保存一份。

    我猜测这就是我账号被封的直接原因。

    统计损失

    当时我的号还不像现在有这么多 followers 和 stars ,这是当时我的 profile 的截图:

    因此,当时账号被封对我最大的损失主要是这几个:

    • 最心疼的是自己点过的一千多 star 。我是把 star 当收藏夹用的,现在等于收藏夹丢了。
    • 丢了代码仓库,丢了 followers 。这其实还好,因为代码我本地都有,followers 也可以慢慢再挣。
    • 有一些使用 Github 做第三方登录的网站登不上了

    知道了事情大概的原因后,我要做的主要就是两件事,第一件事是想办法挽回上面说到的三个损失;第二件事是联系官方,看事情能不能补救。

    挽回损失

    我并没有抱着能解封的期望,所以我需要先挽回损失。我统计了自己代码没丢以后,那么主要就是找回自己点的那些 star 了。

    我用谷歌搜了下自己的 Github ID ,的确找到了一些第三方网站的备份,但要不就是信息太旧不全,要不就没有 star 的列表,只能说挽回部分损失。

    不过我很快发现,Github API 仍然是可以访问的。就是我们可以访问如下 API 来找到某个用户 star 过的仓库:

    https://api.github.com/users/[username]/starred
    

    比如这两天被封的那位仁兄sam01101,可以找到他的 star 。

    所以我很快备份了自己的 star ,心态迅速平复。

    后来 V 站另一个仁兄荒野无灯也遇到了类似的问题,也是用我这个方法备份了 star 。

    邮件申述

    剩下的就是碰运气了,账号被封确实是自己的问题,但是我的问题有一个可以辩解的理由,就是我不是自己主动违反了 DMCA ,而是 fork 别人项目导致的。所以我想用这个作为一个突破口。

    我发邮件过去询问我被封号的原因,被告知的确是因为多次违反 DMCA:

    并且对方回复了两次,分别说了这两句话:

    Unfortunately, this means we'll have to keep your account suspended.

    We're sorry for any disappointment, but we will not be restoring access to your account.

    基本就宣判不能恢复了,不过我最后还是试了下,写了一大段邮件,大意是:

    1. Github 对我很重要,我对开源做出过很多贡献,我想继续参与开源项目
    2. 我认识到了自己的错误,以后 fork 项目会非常谨慎
    3. 我自己的项目没有违反 DMCA ,而且还有其他人参与了这些开源项目,直接封掉我和这些项目,对其他 contributors 不公平
    4. 强硬地说虚拟资产也是资产,需要得到保护

    不知道是哪一点打动了对方,这封邮件以后,Github 终于给我恢复了:

    这整个申述的过程持续了一个多月,原因也和当时是 12 月有关,外国人都过圣诞节了,所以耽误了很长时间。

    复盘

    最后对整件事进行复盘,需要吸取的教训有:

    • 不要随便 fork 项目,况且是你明知他是违反 DMCA 的项目
    • 及时备份自己的代码仓库、star 列表
    • 各种网站登录,一定要有除第三方登录以外的另一种登录方式
    • 努力沟通还是会有结果

    希望对于现在其他遇到类似问题的朋友有所帮助。

    28 条回复    2022-02-28 11:06:04 +08:00
    hhacker
        1
    hhacker  
       2022-02-25 23:03:45 +08:00   ❤️ 1
    ``我一直把 fork 项目当做是“保存快照”的步骤``
    的确很多人这样做,似乎担心 repo 随时会被删掉
    polaa
        2
    polaa  
       2022-02-25 23:14:48 +08:00
    p 牛去 Shopee 了啊 ,看了下 JD , 可惜不太合适
    XIU2
        3
    XIU2  
       2022-02-25 23:17:08 +08:00   ❤️ 2
    @hhacker 确实,很多人都把 fork 当成一种快照 /备份方式,fork 后看都不看~
    Cavolo
        4
    Cavolo  
       2022-02-25 23:49:09 +08:00
    理性的楼主,点赞。
    mikewang
        5
    mikewang  
       2022-02-25 23:50:11 +08:00   ❤️ 1
    遇到过同样的情况。事实证明,fork 并不能避免 repo 被 ban 。当一个 repo 被 takedown 之后,所有 fork 的 repo 也会挂,而且作为 fork 的用户被 takedown 之后还没有查看修改的能力。
    至于 DMCA 有多麻烦就不说了,有些项目本身没有侵权的地方,仅仅因为对方公司一个律师函就被 takedown ,这时就得申诉,效率也不高。当然 GitHub 也得为了本身利益嘛,免得被告就先停用 repo (摊手)
    codingBug
        6
    codingBug  
       2022-02-26 00:19:28 +08:00
    想起了我的 YouTube 账户被限制登录,好忧桑,所以各位一定要珍惜自己的账号
    iseki
        7
    iseki  
       2022-02-26 02:11:49 +08:00
    不是很能理解为什么 ban 仓库之余还要 ban 账号,不过联想想之前那位破坏了自己仓库结果呗 ban 号的人,也不意外了
    xiadong1994
        8
    xiadong1994  
       2022-02-26 02:18:41 +08:00
    fork 之后得至少再 clone 一份吧……
    exhades
        9
    exhades  
       2022-02-26 02:23:56 +08:00
    没想到 P 师傅居然被封过 github
    我觉得 fork 那些项目很正常啊,就是拿 fork 做备份。直接 ban 仓库就好了啊。github 为啥要进行 ban 账户呢。好意外。。。
    dingwen07
        10
    dingwen07  
       2022-02-26 02:58:55 +08:00 via iPhone
    fork 也要 ban 账号就离谱
    有些仓库被 takedown 是因为公司起诉,比如 YouTube-dl ,这种 fork 的人完全不可预见。
    secondwtq
        11
    secondwtq  
       2022-02-26 03:08:25 +08:00
    我也是把 star 当收藏夹用,但是 GitHub 这个 star 功能实在太弱鸡,所以我实际的“收藏夹”本来就是在本地的,star 只是提供一个“点到某个仓库的时候能快速确定是不是在收藏夹里”的“缓存”而已。

    后来 GitHub 出了个 Lists ,一开始看上去还行,用了两天发现居然最多只能有 16 个,还是算了吧,不能指望 ...
    liximomo
        12
    liximomo  
       2022-02-26 09:06:33 +08:00
    很有价值的分享!
    SomeBottle
        13
    SomeBottle  
       2022-02-26 09:14:45 +08:00
    受益良多,感谢分享
    这几天被某个帖子整的有点心里不安,现在看 Github 这边也并非是没有商量余地的。😂
    whileFalse
        14
    whileFalse  
       2022-02-26 12:45:50 +08:00
    我其实不太理解 Star 这个功能有啥用,感觉就是点个赞,而且你能看到自己点过的所有赞。
    Removable
        15
    Removable  
       2022-02-26 13:19:53 +08:00 via iPhone
    @whileFalse 就当收藏用,现在不是出了 star 分类功能么,这不就是明明白白收藏了么
    Biwood
        16
    Biwood  
       2022-02-26 13:41:04 +08:00
    好像新手喜欢吧 fork 当做收藏用,我刚注册那会儿也是 fork 一些项目,后来才知道 start 才是真正的收藏功能。
    Biwood
        17
    Biwood  
       2022-02-26 13:47:02 +08:00
    @exhades 这就是对 fork 的理解差异了,你觉得 fork 是用于保存快照,Github 官方认为 fork 是为了参与开发和扩展功能。话说我后来也是意识到把 fork 用错了,就把自己名下所有没参与开发的 fork 仓库都给删掉了,我建议大家都这么做,以避免不必要的争端。
    corruptdu
        18
    corruptdu  
       2022-02-26 15:08:43 +08:00 via Android
    @Biwood 本新手不邀自来,我 fork 的唯一目的就是当收藏,用的时候找的方便
    cweijan
        19
    cweijan  
       2022-02-26 16:16:29 +08:00
    顶一个, 我是 github 重度用户, 昨天看到那个人说被删号我还挺担心我自己炸号, 今天才知道这人是自己违反了 github 协议.
    charlie21
        20
    charlie21  
       2022-02-26 21:51:49 +08:00
    fork 之后转私有
    janus77
        21
    janus77  
       2022-02-26 22:30:04 +08:00
    有两个问题,一个是有没有比较快速高效的方法去鉴别项目是否违反 DMCA ?有些项目是可以一眼看出来的,但是有些项目不太好鉴别,看上去就是一个普通的项目
    还有一个问题就是如果收到了这种 DCMA 的 notice 邮件,是不是删掉你的 fork 就可以解除警告了呢?
    phithon
        22
    phithon  
    OP
       2022-02-26 22:50:25 +08:00
    @janus77 你收到警告邮件的时候你的项目应该就已经被封了,你访问会显示一个 DCMA 的页面,无法执行任何操作。第二次就没有邮件了,号可能直接就没了。
    SunsetShimmer
        23
    SunsetShimmer  
       2022-02-27 00:59:35 +08:00 via Android
    @charlie21 fork 好像是不能修改仓库可见性的?
    SunsetShimmer
        24
    SunsetShimmer  
       2022-02-27 01:02:44 +08:00 via Android
    这么看来 GitHub 做的可能有点过分,不过我自己的账号也 fork 过几个(多于两个)被 DMCA 的仓库,gh 只是给我发了提示 email 但没封号(最近一次是 unblock-music ,发了三遍邮件)。感觉可能和发 DMCA 版权所有人的诉求有关?
    SunsetShimmer
        25
    SunsetShimmer  
       2022-02-27 01:11:41 +08:00 via Android
    @SunsetShimmer
    第一次是通知 It is important that you reply to this message within 1 business day regardless of which option you choose. If you do not, the repository will be disabled.(两个选择是提出自己的库没问题,或者对 DMCA 请求抗议)
    第二次标题强调最后通知,内容相同
    (我没有回复,因为没看到)
    第三次是禁用之后 We did not hear back from you and/or the requested changes were not made, so we had to disable your repository in accordance with our DMCA Takedown Policy: https://docs.github.com/en/github/site-policy/dmca-takedown-policy

    不过 gh 给我发的通知和给 PO 主发的画风不太一样,我的这个更长且描述了抗议的方法。
    phithon
        26
    phithon  
    OP
       2022-02-27 01:26:23 +08:00
    @SunsetShimmer 可能这两年改了
    exhades
        27
    exhades  
       2022-02-28 01:43:58 +08:00
    @Biwood #17 我能理解 fork 是为了参与贡献,但我这里的“保存快照”是因为安全圈的习惯,很多安全相关的项目,可能公开没多久就会被删掉(Leak/Crack/bypass/poc/exp 等等),所有很多时候都是习惯性线 fork 然后在 clone 。。。
    不这样的话有时 clone 半路项目就已经被删了 - -

    ----

    我这边 fork 过的 DMCA 项目也不少,之前还遇到过 DMCA 的项目无法删除的情况。好像后面是 github 自己删了(我也不确定,现在 DMCA 项目 github 是不是会自动删?
    Kasumi20
        28
    Kasumi20  
       2022-02-28 11:06:04 +08:00
    fork 之后转成 private ,就不会被 ban 了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3026 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.