登录
  • 人们都希望被别人需要 却往往事与愿违
  • 简单是可靠的先决条件。Simplicity is prerequisite for reliability.@Edsger Dijkstra (图灵奖得主)

为了你的隐私考虑,别用马克飞象了

信息安全 Benny小土豆 11359次浏览 3033字 16个评论
文章目录[显示]
这篇文章在 2017年07月11日17:50:23 更新了哦~

是的,你没看错,我标题写的是"别用马克飞象"了。似乎我的博客里从来没有出现过说不要用某个产品的说辞,但是这一次,我觉得必须要说一下了。如果你在意你的隐私,那就别用马克飞象了

那么为啥不要用呢?

太长不看版

HTTP传输。全站HTTPS的行动刻不容缓为 HTTPS 打一场人民战争

起因

今天白天勤快给小蜗牛童鞋的服务器部署了防盗链,用Nginx大概是下面这样的语法:

valid_referers none blocked www.mingyueli.com *.google.com *.baidu.com *.so.com;
if ($invalid_referer) {
rewrite ^/ https://okwbu9s8e.qnssl.com/moon-hotlink2.png;
}

大家可以看到,如果referer不是www.mingyueli.com *.google.com *.baidu.com *.so.com这几个,那么就会被302重定向到一个图片上,实际上这个图片也就是盗链提示的图。

晚上的时候,小蜗牛突然给我发图,问我这个防盗链的图是怎么回事。其实我是没想到这么快发现的好吧。想着新站大概也不会有多少流量、有多少盗链,深感此中必有蹊跷,我就分析了下Nginx的日志打算寻找下原因。

首先过滤下302,大概就是这样的命令吧

cat www.mingyueli.com.log|grep –a '302'

然后我就发现了这么奇怪的一行日志

为了你的隐私考虑,别用马克飞象了

(出于隐私保护,我把小蜗牛童鞋的IP、UA给打上马赛克了)

果真是有个referer,被Nginx撵走了。但是这个referer这么奇葩,竟然是个IP,是哪的呢?

ip.cn查了下,青岛阿里云,本着好奇的想法就贴到了地址栏,我这么一回车啊……

为了你的隐私考虑,别用马克飞象了

哎我去?我就想,难道这是小蜗牛童鞋自己搭建了一个markdown服务器?不可能啊超级麻烦的,而且闲的没事干啊?

于是我就nslookup一下马克飞象的官网

当当当!

为了你的隐私考虑,别用马克飞象了

然而这丫的官网却是带https的,敢情这IP是default_server啊……

进一步调查

我开始觉得马克飞象这玩意不太靠谱,于是果断去官网,下个客户端,安装-wireshark抓包。当然啦,俺平时是开着VPN的,如果这个时候抓包,直接被路由表搞走了,肯定是没啥效果的,所以我暂时关了VPN

反正抓包的过程也简单的,既然咱都知道要过滤的目标IP是115.29.201.173,所以咱就选择网卡,抓,打开马克飞象,随意做点操作,上传个图啊什么的。

之后停止抓包,过滤条件里输入这么个条件一回车:

ip.dst==115.29.201.173

为了你的隐私考虑,别用马克飞象了

好多TCP,有点干扰,为了过滤掉多余的TCP,再这么一弄过滤条件

ip.dst==115.29.201.173 and http

为了你的隐私考虑,别用马克飞象了

我擦别逗我,全都是HTTP的,擦,那我写的东西传输过程中指不定变成啥样、指不定被谁看个遍啊……

太没良心了吧我说!default server(也就是http://115.29.201.173/client_zh.html)存在的cookies泄露、中间人啥的我就不说了,这客户端直接明文传,是几个意思啊?明文传也就罢了,host还是default server

HTTPS的通信抓包之后应该是咋样的

拿本博做例子,是酱紫的:

为了你的隐私考虑,别用马克飞象了

咱能明显的看到有Client Hello、密钥交换过程,在这个交换过程中、交换之后,到底做了啥、主机名是啥,咱是真不知道。只有DNS查询过程中能看见我请求了一个解析。这第三者(包括抓包,本质上也算是"窃听者")想要解密,就没那么容易了。

隐隐约约想起了avast以前会装个自己的根证书,声称是用来解密HTTPS通信、防止一些网页挂马什么的。至于安全性,我是不咋看好。

后续

后来手欠看了下马克飞象的安装包,图标大概是这样的

为了你的隐私考虑,别用马克飞象了

哎我这不是WinRAR的自解压文件吗?那你要个毛管理员权限啊!在一个test.bat中我发现了这么一句话

为了关联Evernote中的笔记,马克飞象需要向注册表写入配置……

莫非是临时工做的?

总结

所以啊,这玩意快扔垃圾桶吧,http是最不能忍的,一丝一毫都不能忍……全站HTTPS是必须的!全世界最大的黄网pornhub都上https了,咱还有啥理由不拥抱全站https啊?

当然了,有些人大可以说,我不在乎我的隐私,嗯这就好似有些人说"政治与我无关"一样。

然而我个人是非常在乎我的、以及我的访客的隐私,这也是我没有开启评论UA、更别提把地理位置信息啥的暴露给大众的原因。

所以在我为小蜗牛童鞋二次开发的主题中,UA选项选项默认是关闭的(那俺为啥要开发这个功能呢?没事闲的、写点程序练练手、满足一下内心那可怕的心理需求、刷刷存在感呗)的确,我可以通过日志、通过访问统计工具来获得访客的UA等信息,如果我想,我可以分析出来一个人都看了什么(很显然我啥时候闲的有这个功夫了)。但是这只有我才能做到,这也就意味着我需要对访客的隐私负责—— 我需要做好服务器的安全工作,保护日志不外泄,尽管访客可能毫不在意这点。

好吧,说实话,其实我是装有Random User-Agent的……

其他markdown替代品

有人可能会问了,有没有啥markdown替代品啊?嗯,在Windows下我使用markdown pad2,在Linux下我使用Remarkable(这家伙也要出Windows版本的,只是一直是Under development)。

The view has crashed?
如果你使用的是Windows 8及更新版本,markdown pad2可能会有这么一条警告导致无法预览。解决方案很简单,下载awesomium并安装就好啦

更狠一步的解决方案

对于这么嚣张的玩意,我一直是深恶痛绝的,那怎么再以身作则玩一玩呢?

屏蔽马克飞象UA

咦,是不是日志中记录了这么一串UA

Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Marxico/1.0.0 Chrome/47.0.2526.110 Electron/0.36.10 Safari/537.36

那好办了,找到自己的nginx配置文件,server段里加这么一句

if ($http_user_agent ~* (Marxico)) {
return 403;
}

然后重启Nginx

/etc/init.d/nginx reload

就好了,假如要禁止掉多个UA,那就用管道隔开,形如python-requests|Python-urllib|Marxico就可以了。

Nginx屏蔽马克飞象IP

呐,这个很简单,直接来一句deny 115.29.201.173;然后重启Nginx即可。
当然了我这人超级爱黑名单,所以都是新建一个名为blackip.conf,里面写满了那些我讨厌的IP,然后nginx.conf里直接include blackip.conf

UFW/iptables屏蔽马克飞象IP

这个就更暴力了,直接来一句

ufw insert 1 deny from 115.29.201.173 to any

世界清净了

最后的致歉

如果原先的防盗链的图给小蜗牛童鞋造成了困扰,那么深表歉意……我是故意的,有一些事情,大概就是它原本的样子,也许只是内心深处最后的挣扎与冲突吧——如果,没有如果。


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/no-more-maxiang.html
喜欢 (20)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(16)个小伙伴在吐槽
  1. 哇撒,我现在才看到这个,我还一直用马克飞象,赶紧卸了卸了
    MissHoya2017-09-11 11:31 回复
    • 唔 这个问题 貌似已经修复了。
      Benny小土豆2017-09-11 11:37 回复
  2. 博主你好,这是作者给我的答复。 “马克飞象很早就使用HTTPS了,但有时在DNS解析失败的时候(国内网络有时会莫名出现这个问题),域名无法访问,会退回到IP访问,于是就出现了文章中的情况。现在我也已经把这个回退机制拿掉了,任何时候都是HTTPS,所以不会有任何问题了。麻烦跟博主解释下。”
    莫云南2017-06-09 13:55 回复
    • 你好,是的 ,尽管此次官网的版本和我当初保存的版本的散列值是相同的,我没再抓到http与其他明文的包(除了一个清单文件cache.manifest.zh是从http下载的)
      Benny小土豆2017-06-09 16:41 回复
  3. 请问我能不能将这篇文章发给作者,向其质疑其隐私政策了?
    莫云南2017-06-08 20:30 回复
    • 你好,可以,但是要注意下此篇文章写于两个多月之前,也许它更新了,所以不敢保证时效性。
      Benny小土豆2017-06-08 20:43 回复
      • 好,谢谢,我会声明的。因为长期使用马克飞象,博主这么一说我很忧心。非常感谢!
        莫云南2017-06-08 21:00 回复
        • 只是我个人比较在意这些,也许其他人未必在意吧……
          Benny小土豆2017-06-08 21:02
        • 我也非常在意。
          莫云南2017-06-08 21:03
        • 嘻嘻~棒,咱就喜欢这种人!
          Benny小土豆2017-06-08 21:05
  4. 我用mweb,本地编辑。网上用Dropbox paper,随机ua有意思,待会去看看safari有没有类似插件……
    落格2017-04-11 12:41 回复
    • 别用这玩意就对了?随机UA在chrome和Firefox都有扩展
      Benny小土豆2017-04-11 12:50 回复
  5. 这啥……听都没听说过??
    ホロ2017-04-07 00:06 回复
    • 一个markdown编辑器,我以前也不知道,看日志才知道还有这个玩意?
      Benny小土豆2017-04-07 08:09 回复
  6. 你的网站有三个小绿点和一个灰色透明层好烦哦,等几分钟都不消失。是故意让所有内容载入完成再取消覆盖的图层吗?万一有一个东西没进来就完全没法看你的网页了啊。要不给设置一个最大遮住的时间?
    Zola2017-04-06 22:10 回复
    • 唔……感谢来访与建议,我开F12限制网速看了下,在低速连接、丢包率比较高、引用了一些外部资源的情况下就会发生这种事情;权宜之计暂时把load改成了ready,这样只要当DOM结构绘制完成就能让它消失了,load要等到整个页面都加载完
      Benny小土豆2017-04-06 23:03 回复