七牛云存储的 DNS/路由 被劫持???

我们使用七牛的 "镜像存储" 功能, 镜像源设置到 AWS Singapore 的 S3 上, 不加密 http. 我们七牛空间里全是JavaScript, CSS 和 image 的静态文件.

根據七牛的說明:

设置镜像存储,源站资源(文件/图片等)根据初次访问自动同步到七牛云存储,数据平滑迁移。
可使用绑定的自定义域名访问镜像存储的源站资源。格式:http://绑定域名/源站资源相对路径。

我们网站一向是用 https://dn-[空间名字].qbox.me, SSL 载入 JavaScript 的.
用了差不多一年了, 也没有问题, 但今天出大事了.

今天我们发现站里的 JavaScript 很奇怪, 调查发现其中一个 JavaScript 档案的内容被替换了! 变成了:

<!Doctype html><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<script type="text/javascript">
        var h=window.location.host;
        window.location="http://search.114so.cn/search_web.html?id=407&kw="+h;
</script>
</body></html>

我立即昏倒.

分析原因

因我们是用 https 载入, 先排除 "浏览器 <---[路由/长城等]---> 七牛" 中间被改动的可能性.

登录七牛, 在 "内容管理" 里找出我们的文件 assets/lang-en-[chunk].js, 直接下载, 打开一看, 就是上面的代码...

所以推測是七牛去 AWS S3 Singapore 拿源站资源的時候出問題了. 根據被替换的內容估計, 是七牛所用的 DNS/路由被劫持了??

临时的解决方法

登录七牛, 在"内容管理" 里找出有问题的文件, 手动删除... 下次访问时七牛重新一次到源站拿资源.

基本上在七牛网站上找不到有客服, 想查问好像只能在这里.
空间里这么多静态文件,我不可能每次每个文件检查。七牛的可靠性很令人担心哦...

阅读 12.2k
2 个回答
✓ 已被采纳新手上路,请多包涵

原來在 http://segmentfault.com/qiniu 上有【提交私密工单】連結, 可直接向七牛發問. 1小時內就回覆了我, 也算很快. 內容如下:

刘斌
2015-09-04 14:09

您好:

回源是根据域名解析,或的ip,然后通过网络到指定ip去拉去数据。

此时,每一步七牛都只是一个客户端。

解析时,电信拦截了解析失败的信息,替换为其自己页面,且响应 状态码 为 200 ,此时客户端(七牛)认为拉取成功了,所以保存了这个文件。

此时被拦截的是 镜像源的 域名,不是七牛的域名。

目前在想法避开 这种 运营商 解析失败但响应 200 对 镜像 存储造成的影响。

目前解决方式: 到空间将文件删除。

设置镜像时指定IP,设置 HOST
http://developer.qiniu.com/docs/v6/tools/qrsctl.html#img

证明了我的分析正确, 但说白了就是他们也没法子, 七牛也是受害者...
所谓的解决方式今本不是一个可行方法, 改成IP 只可避免 DNS 劫持. 电信拦截了解析失败的信息(如404)且响应 "状态码" 为 200 的问题今本没有解决. 何况 AWS S3 今本不可能改成IP.

我看真正的解决方法, 是不要使用 "镜像存储" 功能, 自己直接把文件上传到七牛空间.

新手上路,请多包涵

访问qiniu.com,也是被114so了。

很无语,七牛的平台技术很好,网络拓扑架构真的很烂。用了快2年,别说资源访问有时候不靠谱,就连官方Python SDK写的都不靠谱,如果按照那文档写代码,到处抛错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进