我提出的这些方法也仅仅只是抛转引玉,欢迎有更好办法的同学回复与我讨论讨论。
方法一:最简单的,网站添加跳转js代码,判断浏览器URL,如果不是本站地址就进行跳转。(防御强度:1)
方法二:利用DNS解析的搜索引擎识别自动将爬虫引导至正常带文章内容的副站,访客访问的主站将文章内容做懒加载,由js文件动态向后端发送api请求获取文章内容后在显示到页面上,并加上法一中的判断代码然后一同进行高强度混淆处理。(防御强度:3)
方法三:在DNS解析处将搜索引擎的爬虫引导至副站,主站的文章进行字体反爬虫处理,且关键页面的HTML标签元素由js动态生成,加上法一中的判断代码然后一同进行高强度混淆处理。(防御强度:5)
方法四:在方法二、方法三的基础上,每天由脚本为js文件填充一些垃圾数据再混淆后更新js文件,增加反混淆难度。(防御强度:4|6)
注意:方法二、方法三因为DNS解析商不一定能够完美识别所有来自搜索引擎的爬虫,可能会将之引导去副站,影响SEO。
普通方法:对镜像站访问一些特殊页面,如aaabbb.html,并使用脚本自动读取访问日志,筛选出反代服务器的IP并屏蔽之。(防御强度:2)
补一个:找到反代服务器的IP后,可考虑想其VPS服务商进行举报投诉处理,域名商可考虑想域名注册商投诉,CDN如cloudflare等可考虑向CDN服务商举报投诉。(防御强度:2)
对于图片:全站图片请务必加上水印,在文章中的代码处若需要使用一些变量等,可使用与网站主人相关的内容如主人ID等做替换,增加镜像站流量转移到源站的可能性。图床需进行referer白名单处理,防止其他人直接引用原资源,造成不必要的流量浪费。