IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    关于本站备案那点事

    JerryQu 的小站发表于 2015-09-03 02:37:01
    love 0

    算了算我写博客快有十年了吧。一开始是在 csdn 写,大约九年前,我开始使用自己编写的博客程序,启用自己的域名变为独立博主了。这些年来,我的博客程序从 ASP 到 Python 到现在的 NodeJS 写了三版,域名从 qgy18.com 变为 imququ.com,部署环境也从一开始的国内 ASP 空间到后来的 Linode,唯一没变化的是我的博客从来没有备案过。

    但是最近,我的 Linode Tokyo 持续无法访问,几番折腾之后终于下定决心使用国内云主机。既然无法改变现状,何不试试现在流行的「拥抱变化」呢。但选择国内主机,根据国家有关规定,我就必须去完成备案。

    主机我选择了阿里云的 ECS,于是就用了阿里的备案系统。整个过程总的来说还是很顺利:2015-08-18 晚上提交初审,2015-08-19 提交管局审核,2015-09-02 收到通知备案成功。大约两周的时间,对于备案地在阅兵前的北京来说已经很不容易了。这里要感谢波波同学提供的幕布,省去了消耗在拍照环节的大量时间。另外我也比较幸运,我提交申请的时候还不需要邮寄资料,又节省了一些时间。

    下面说说备案期间我对本站的一些处理。

    首先,由于我的 Linode IP 已经无法访问,所以我购买 ECS 之后直接就把 DNS 解析过来了。这时我发现阿里针对未备案的域名进行了阻断,通过 HTTP 协议访问我的博客,会看到阿里云默认的「温馨提示」,请求根本不会到达 ECS。但是通过 HTTPS 访问就没问题了,这是 TLS 传输加密的功劳。由于我在两年前就启用了 HTTPS,并且输出了 HSTS 响应头,阿里这个阻断策略对我来说影响不大。

    这里顺便说一句,很多人都会抱怨 HTTPS 慢,实际上这是因为有太多站点没有好好优化。合理地优化外加新协议(HTTP/2)的使用,HTTPS 并不见得就会慢。大家访问我的博客会觉得慢吗?

    但是,根据经验为了保证备案通过率,最好进行关站处理。我经常要在自己的博客上查东西,当然不打算彻底关站。暂时去掉 DNS 解析,改在本地配 HOST 是一种方案。但是我采用的是另外一种方案,针对不同情况区别对待:

    A)老用户白名单。我的博客为了做统计,会记一个有效期很长的 cookie,我在程序中判断如果存在这个 cookie 一律放行。备案审核人员之前肯定没有来过我的博客,这一点大可放心。

    B)操作系统白名单。根据之前的统计,我的博客大约有接近一般的非 Windows 用户,我假设审核人员都是用的 Windows 电脑办公,于是针对 UA 中不包含 windows 的请求直接放行。当然,你也假设他们只用 IE,但是我没冒这个险。

    C)蜘蛛程序白名单。大部分蜘蛛程序都会在 UA 中表明身份,针对这类请求也可以一律放行。这一点很重要,不然搜索引擎会因为你的网站无法访问而影响收录。我针对 UA 中包含国内外各大搜索引擎 Spider 和 RSS 阅读器 Spider 的情况一律放行。

    D)来源白名单。由于我不能确定审核人员一定是直接访问待审核网站,我并没有针对请求头中存在 Referer 字段的访问直接放行,而是针对其中的两类情况做了白名单。1)从搜索引擎点过来的请求;2)Google Analytics 统计到的外链站点。

    E)URL 参数白名单。有时候我需要发一个链接给别人,为了保证他一定能打开,我会带上特殊的参数,再在程序里针对包含这个参数的请求一律放行。

    至于 IP 黑白名单之内的策略,我觉得收集规则太麻烦就没去弄。除了上面这些情况,我会输出 404 Not Found,真的相当于关站了。根据这段时间的统计,加上这些限制后,每天的访问量大概少了 1/4。

    上面这些逻辑我是通过 ThinkJS 的 behavior 实现的,代码不过十几行,并且可以方便地开启和关闭。

    本文链接:https://imququ.com/post/about-miitbeian.html,参与讨论

    推荐:领略前端技术 阅读奇舞周刊



沪ICP备19023445号-2号
友情链接