自己写的博客被反代盗用是一件很操蛋的事,尤其是用户访问盗版的时候还消耗我的资源(CDN的费用超贵啊)

这段时间一直有个人通过python反代我的博客,盗取我的静态资源。

在把证据发到MJJ论坛,请求大佬们出手的同时,我也在想应对反代替换我的博客的方法。经过多次测试后,总结了以下几个方法。

禁止iframe

阿里云/腾讯云的URL隐性跳转其实质就是iframe,iframe其实挺好用的,但好的工具也会被坏人利用。使用iframe假冒网站成本最低。即使阿里云/腾讯云的URL隐性跳转需要备案域名,但自建URL隐性跳转也不难,网上也有公共的服务器提供服务。

由于我的博客接入的是腾讯云CDN,因此在腾讯云CDN进行防御。

为了防止自己的网站被iframe盗取,可以自定义header

X-FRAME-OPTIONS
Deny

你可以选择下面三种属性:

DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri:表示该页面可以在指定来源的 frame 中展示。

拉黑域名

在CDN处将对应的网站添加进referer的黑名单中,注意*.abc.comabc.com都要加入,这样才能完整屏蔽这个域名。
这个缺点是referer还算比较容易被伪造,但可以阻止它调用你的静态资源。

拉黑ip

配置好nginx的真实ip识别后,分析腾讯云CDN与nginx的日志,手动在一个时间访问它网站,查看这个时间日志里的ip,一般就是它反代服务器的用到的代理ip,直接拉黑/24段,甚至/16,一般反代都是用机房的IP,你把整个段封了就行。换了再封一个段,对方总不会为了一个小站不断换机房的。
除了来源IP,所有参数都可以伪装的(请参考NGINX反代)。
这个方法的缺点就是没法阻止它调用你的静态资源。

一般来说禁止iframe,拉黑ip,拉黑域名已经完全足够了,但对于一些流氓网站来说还是不够的,MJJ大佬和群大佬还教我了几个比较缺德的方法。虽然缺德但知道原理后还是容易被破解,因此我还是加一个密码吧。

referer防盗链策略

目前我的图床用的是白名单,还不太需要这个,但是这个作者的思路不错,存下来,以后需要的时候再用。

https://blog.wolfogre.com/posts/anti-hotlinking-without-referer/

感谢

感谢MJJ论坛的大佬们,感谢handsome的群友们。

最后修改:2020 年 04 月 19 日
如果觉得我的文章对你有用,请随意赞赏