Header Ads

Sử dụng CSS và JavaScript để chống sao chép


Nối tiếp bài viết sử dụng jQuery để vô hiệu hóa chuột phải và sao chép nội dung bài viết, thì hôm nay mình lại nghiên cứu thêm cách sử dụng CSS và Javascript để chống sao chép bài viết từ trang web của bạn.

Mã nguồn này bao gồm cả CSS và Javascript, nếu bạn kết hợp cả 2 luôn thì nó sẽ rất hoàn hảo, ngăn chặn khách truy cập sao chép bài viết của bạn lung tung hoặc nhằm đem lại lợi ích cho họ.

Vô hiệu hóa bôi đen bài viết

Chép đoạn CSS bên dưới vào trong cặp thẻ <style>...</style>
- Đoạn CSS này dùng để vô hiệu hóa bôi đen trong phần bài viết của bạn, nhưng bên ngoài vẫn bôi đen được, ngăn không cho người khác sao chép bài viết.
.post-body{
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none }
- Nếu muốn vô hiệu hóa hết việc bôi đen toàn bộ trang web thì dùng đoạn CSS này
body{
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none }

Vô hiệu hóa F12, Ctrl+U, Ctrl+Shift+I, Ctrl+S, Ctrl+Shift+C

Đoạn JavaScript dưới đây rất hữu ích trong việc ngăn khách truy cập xem mã nguồn của trang web bằng cách sử dụng phím tắt F12, Ctrl+U, Ctrl+Shift+I, Ctrl+S, Ctrl+Shift+C. Khi họ nhấn những phím này thì lập tức sẽ được đưa đến một trang web do mình chỉ định, trong bài viết này thì mình chỉ đưa về trang chủ thôi. Bạn có thể thay tên miền www.allfreevn.com thành của bạn nha.
Chèn đoạn Javascript này vào trước thẻ </body>
<script type='text/javascript'>
//<![CDATA[
shortcut={all_shortcuts:{},add:function(a,b,c){var d={type:"keydown",propagate:!1,disable_in_input:!1,target:document,keycode:!1};if(c)for(var e in d)"undefined"==typeof c[e]&&(c[e]=d[e]);else c=d;d=c.target,"string"==typeof c.target&&(d=document.getElementById(c.target)),a=a.toLowerCase(),e=function(d){d=d||window.event;if(c.disable_in_input){var e;d.target?e=d.target:d.srcElement&&(e=d.srcElement),3==e.nodeType&&(e=e.parentNode);if("INPUT"==e.tagName||"TEXTAREA"==e.tagName)return}d.keyCode?code=d.keyCode:d.which&&(code=d.which),e=String.fromCharCode(code).toLowerCase(),188==code&&(e=","),190==code&&(e=".");var f=a.split("+"),g=0,h={"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":":","'":'"',",":"<",".":">","/":"?","\\":"|"},i={esc:27,escape:27,tab:9,space:32,"return":13,enter:13,backspace:8,scrolllock:145,scroll_lock:145,scroll:145,capslock:20,caps_lock:20,caps:20,numlock:144,num_lock:144,num:144,pause:19,"break":19,insert:45,home:36,"delete":46,end:35,pageup:33,page_up:33,pu:33,pagedown:34,page_down:34,pd:34,left:37,up:38,right:39,down:40,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123},j=!1,l=!1,m=!1,n=!1,o=!1,p=!1,q=!1,r=!1;d.ctrlKey&&(n=!0),d.shiftKey&&(l=!0),d.altKey&&(p=!0),d.metaKey&&(r=!0);for(var s=0;k=f[s],s<f.length;s++)"ctrl"==k||"control"==k?(g++,m=!0):"shift"==k?(g++,j=!0):"alt"==k?(g++,o=!0):"meta"==k?(g++,q=!0):1<k.length?i[k]==code&&g++:c.keycode?c.keycode==code&&g++:e==k?g++:h[e]&&d.shiftKey&&(e=h[e],e==k&&g++);if(g==f.length&&n==m&&l==j&&p==o&&r==q&&(b(d),!c.propagate))return d.cancelBubble=!0,d.returnValue=!1,d.stopPropagation&&(d.stopPropagation(),d.preventDefault()),!1},this.all_shortcuts[a]={callback:e,target:d,event:c.type},d.addEventListener?d.addEventListener(c.type,e,!1):d.attachEvent?d.attachEvent("on"+c.type,e):d["on"+c.type]=e},remove:function(a){var a=a.toLowerCase(),b=this.all_shortcuts[a];delete this.all_shortcuts[a];if(b){var a=b.event,c=b.target,b=b.callback;c.detachEvent?c.detachEvent("on"+a,b):c.removeEventListener?c.removeEventListener(a,b,!1):c["on"+a]=!1}}},shortcut.add("Ctrl+U",function(){top.location.href="http://www.allfreevn.com/404"}),shortcut.add("F12",function(){top.location.href="http://www.allfreevn.com/"}),shortcut.add("Ctrl+Shift+I",function(){top.location.href="http://www.allfreevn.com/"}),shortcut.add("Ctrl+S",function(){top.location.href="http://www.allfreevn.com/"}),shortcut.add("Ctrl+Shift+C",function(){top.location.href="http://www.allfreevn.com/"});
//]]>
</script>

Vô hiệu hóa chuột phải bằng Javascript

Chèn đoạn Javascript vào trước thẻ </body>
<script type='text/JavaScript'>
 //<![CDATA[
function killCopy(e){
return false
}
function reEnable(){
return true
}
document.onselectstart=new Function ("return false")
if (window.sidebar){
document.onmousedown=killCopy
document.onclick=reEnable
}
var message="NoRightClicking"; function defeatIE() {
if (document.all) {(message);return false;}}
function defeatNS(e) {
if (document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);document.onmousedown=defeatNS;
}
else{
document.onmouseup=defeatNS;document.oncontextmenu=defeatIE;
} 
document.oncontextmenu=new Function("return false") 

checkCtrl=false $('*').keydown(function(e){ 
if(e.keyCode=='17'){ checkCtrl=false  } }).keyup(function(ev){ 
if(ev.keyCode=='17'){ checkCtrl=false } }).keydown(function(event){ 
if(checkCtrl){ 
if(event.keyCode=='85'){ return false; } } })
 //]]>
</script>
hoặc bạn có thể vô hiệu hóa chuột phải bằng đoạn mã đơn giản chèn trong thẻ <body> như sau
<BODY oncontextmenu="return false" onselectstart="return false" ondragstart="return false"> 

Lời kết

Hi vọng những cách trên có thể giúp ích cho bạn trong việc ngăn không cho người khác sao chép nội dung trong trang web của bạn. Tuy nhiên cách này cũng chỉ hạn chế việc họ lấy nội dung, sẽ làm tốn thời gian nhiều hơn, hi vọng vì thế mà nản chí, chứ nếu gặp cao thủ thì trước sau gì họ cũng lấy được mà thôi. Chúc bạn thành công.

4 nhận xét:

  1. Bạn cho mình hỏi là có css hay js nào không cho bôi đen, copy nội dung bài viết của 1 nhãn bất kì không bạn?

    Trả lờiXóa
    Trả lời
    1. Bạn có thể sử dụng lệnh điều kiện If như thế này
      Ví dụ:

      <b:if cond='data:blog.searchLabel'>
      <!-- Nội dung hiển thị trên tất cả các trang nhãn label -->
      <style type='text/css'>
      .post-body{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
      </style>
      </b:if>
      .................
      <b:if cond='data:blog.searchLabel == "blogger"'>
      <!-- Nội dung chỉ hiển thị trên nhãn "blogger"-->
      <style type='text/css'>
      .post-body{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
      </style>
      </b:if>

      Xóa
  2. Bạn có thể chỉ mình cách dùng được không?
    Ví dụ giờ mình k cho bôi đen các bài nhãn "English" thì sử dụng hay chèn đoạn trên như thế nào vậy? Thank bạn!

    Trả lờiXóa
    Trả lời
    1. Chào bạn, blogger thì không làm được theo ý bạn như vậy, tức là không cho bôi đen các bài trong một nhãn nào đó, nhiều khi thì nó cũng có giới hạn.
      Mà sao bạn không chống copy trên toàn trang luôn nhỉ.
      Cho dù bạn có chống như thế nào thì thủ thuật này chỉ ngăn newbie trẻ trâu thôi bạn. Chứ còn gặp Pro là không ngăn được nha bạn.

      Xóa

» Sử dụng tài khoản Google của bạn để bình luận.
» Không spam link, nếu spam sẽ bị chặn và nhận xét của bạn sẽ không được hiển thị.
» Khi đăng nhập xong, bạn nhấn vào chữ Thông báo cho tôi để nhận phản hồi.

Được tạo bởi Blogger.