github 已经长期屏蔽中国手机进行二次验证,导致了无法使用短信的方式进行二次验证,但是,网友居然发现有空子可以钻,所以,验证持续可用。

今天祖国生日,但是,我依旧宅在家里,没有出去为祖国庆生,午休的时候突然想起来,github还是很简陋的账号密码验证,没有开启两步验证,有点惶恐,于是起来之后就搞起来了。因为之前就一直在使用 Google Authenticator,所以很顺利就搞定了 Github 的验证。

同时,也发现 Github 比较人性的地方就是考虑得不错,有考虑到设备丢失的情况,这个时候有两种方式清除两步验证,分别是添加 Google Authenticator 成功的时候会给你一个 Recovery-Code 用于清除;还有就是绑定手机短信,使用手机短信验证清除。那方便起见我肯定选择绑定手机短信啦,然而,就在这个时候,悲剧发生了。

图 1:Github 国家列表

不知道你发现了没有,居然没有 +86 !!!也就是说中国的手机号居然不能用。(谁知道什么原因跪求留言告知一声)

然而,万能的谷歌居然帮助我成功绑定了国内的手机号,因为我不小心搜到了这个 gist 项目:

图 2:gist

地址是:戳我查看

然后我就根据里面的内容尝试了下,其实就是修改一下 github 网页的源码,添加一个中国的选项:

  1. <option value="+86">China +86</option>

Chrome Develop Tools 可以帮助你,结果就像这样:

图 3:添加 +86 选项

然后一切就自然啦。。按正常表单填写,你就会收到短信啦。。

图 4:填写手机号码

就这么简单就可以了。

我的猜测

我的猜测 Github 之所以会出现这个问题,原因可能是为了对用户负责,也就是说以前未禁止之前已经启用了 SMS 二次验证的中国用户现在也还是需要使用短信验证这个功能的,不能去掉,所以 Github 为了保证这一部分用户的权益,所以就还保持着这个接口,只是在前端进行一些屏蔽,不让新用户再使用了。

但是,因为聪明的用户有很多,所以这个问题还是被发现了,所以也就有了这一篇文章,如果我的猜测有一点正确的话,那么,可以说这个漏洞应该可以持续使用,不会那么轻易失效,事实如何,可以保持对这篇文章的关注,但他失效的时候,我会更新说明的。同时,如果你发现失效了,我没有说明,欢迎留言告诉我。