chaihongjun.me

保护网站不被仿站复制盗用可以这样做

  保护网站不被仿站复制盗用可以这样做

  公司网站的某一个手机版最近发现被人盗版了页面的模板甚至内容,甚至连百度统计代码都一样,这着实让人头疼和苦笑不得。虽然说只要是WEB发布的,就基本上还是可以被人把页面复制过去,也许辛辛苦苦做出的来的东西,别人只是简单的保存一下就得到了,为了杜绝伸手党轻松得手,防止心爱的代码或资源被盗用,这里总结了一下几个方面去综合防护网站页面和页面资源。从思路上分析,要想取得网站页面一定是复制页面的资源到本地,所以有两个方面可以去操作。

  1.利用仿站工具或类似仿站工具之类原理的爬取工具,批量的抓取页面到本地,适合页面类型多的网站

 要想杜绝仿站工具及类似工具的爬取就需要在服务器端做好设置,允许正常的用户(浏览器UA)以及正常的搜索引擎蜘蛛(搜索蜘蛛UA,例如百度Baiduspider)访问网站的页面,禁止非法的UA,比如仿站工具前来爬取页面内容,所以只要配置好禁止爬取的UA即可:

#以下是nginx的配置细节,添加到server内
location /{       
 
   if ($http_user_agent ~* "MSIE 5.0|msnbot-media|oBot|YandexBot|Mail.RU_Bot|Applebot|SEOkicks-Robot|DotBot|YunGuanCe|Exabot|spiderman|Scrapy|HttpClient|Teleport|TeleportPro|SiteExplorer|WBSearchBot|Elefent|psbot|TurnitinBot|wsAnalyzer|ichiro|ezooms|FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$"){
                return 403;
              }

上面的UA都是被禁止访问的,至于返回码至于是403还是404或者其他非正常的都可以自定义。上面只是判断来访的UA,如果仿站类工具可以非常的逼真的模拟用户浏览器,那么该方法无效了。目前teleport的Pro版本是被禁止抓取的,另外一款叫仿站小工具的也成功阻挡了。至于teleport其他版本是否可以需要实际测试,并将对应合适的UA添加上去。

 2.纯人工去复制页面,这样的方法适合于页面类型少,页面简单。所以只要在页面上做好相应的防护措施即可:

//JS代码贴到页面头部,需要jquery
$(document).ready(function() { //屏蔽鼠标右键
    $(document).bind("contextmenu", function(e) {
        return false;
    });
});
$(function() {
    document.addEventListener('keydown', function(e) {
        e = window.event || e;
        var keycode = e.keyCode || e.which;
        if (e.ctrlKey && keycode == 83) { //屏蔽Ctrl+s 保存页面
            e.preventDefault();
            window.event.returnValue = false;
        }
        if (e.ctrlKey && keycode == 85) { //屏蔽Ctrl+u  查看页面的源代码
            e.preventDefault();
            window.event.returnValue = false;
        }
        if (keycode == 123) { //屏蔽F12
            e.preventDefault();
            window.event.returnValue = false;
        }
        if (e.ctrlKey && e.shiftKey && keycode == 73) { //屏蔽Ctrl+shift+i   屏蔽调出控制台 和F12一样
            e.preventDefault();
            window.event.returnValue = false;
        }
    });
});

当有人想复制页面内容的时候发现快捷键不好使了,然后想右键看源代码,也不好使,用快捷键ctrl+u调出源码也不行,调取控制台也不行,最后发现没什么好办法了。当然如果觉得不放心,可以再最后再加一道锁,按照之前的一篇文章《保护网站不被仿造的方法,禁止本地加载》的思路去加锁:

//当页面被整个盗取到本地的时候,本地打开一片空白,需要jquery
function authentication() {      
    var suffix = "me", 
        main="chai",
        red="hong",
        beauty="jun",            
        dot = ".";        
    var d = (main+red+beauty).toString() + dot + suffix; 
    if (window.location.host.indexOf(d) < 0) {
        $("body").remove();
        return false
    }
    return true
}

$(function() {
    if (!authentication()) return;    // 执行授权方法,检查一下当前页面域名 
});

//以及相同的一个思路
//如果当前浏览器域名不是 chaihongjun.me 将跳转到 chaihongjun.me对应的页面
if (document.location.host != "chaihongjun.me") {
    location.href = location.href.replace(document.location.host,'chaihongjun.me');
}

好了,以上的方法就是从复制角度出发找出屏蔽的方法,以上的JS代码可以再做一次加密来增加破解者的破解难度。如果有新的发现,会在当前页面做更新。经过以上几个步骤已经能很好的保护网站页面的了,当然想完全保护资源和代码在没有第三方软件的前提下是没可能的。经过google多方搜索,给出的答案基本上以上都有综合到了。

保护网站不被仿站复制盗用可以这样做

至于还有什么办法破解,相信你已经猜到了。

知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。作者:柴宏俊»