Trong bài viết này, Tricker Channel sẽ tổng hợp một số đoạn mã JavaScript giúp chống copy, view, F12, và Ctrl + U trên các trang web và blog. Với sự phát triển của công nghệ, việc bảo vệ nội dung trên trang web trở nên quan trọng hơn bao giờ hết để ngăn chặn việc sao chép trái phép và truy cập trái phép vào mã nguồn.
- Trong bài viết này, bạn sẽ tìm hiểu về một số phương pháp khác nhau để ngăn chặn việc copy nội dung bằng cách vô hiệu hóa các phím tắt như Ctrl + C và Ctrl + A. Ngoài ra, bạn cũng sẽ được hướng dẫn cách ngăn chặn việc truy cập vào mã nguồn của trang web bằng cách vô hiệu hóa các phím tắt như F12 và Ctrl + U.
- Bài viết cung cấp mã nguồn chi tiết và hướng dẫn sử dụng cho mỗi phương pháp, giúp bạn áp dụng chúng vào trang web hoặc blog của mình một cách dễ dàng. Tuy nhiên, cần lưu ý rằng các phương pháp này chỉ là biện pháp bảo vệ cơ bản và không thể ngăn chặn hoàn toàn việc sao chép hay truy cập trái phép vào nội dung.
Cách 1
Chống chuột trái lên trang web
</head>
<style type='text/css'>
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
</style>
Chống chuột phải lên trang web
</body>
<script type='text/javascript'> 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") </script>
Chống Ctrl + U và F12 để xem mã nguồn trang web
</body>
<script type='text/javascript'> 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>
Tiếp theo bạn thay thế nội dung tại thẻ <body>
<body>
để chạy code.<body onkeydown="return false">
Cách 2
</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 = "https://trickerchannelvn.blogspot.com/" }), shortcut.add("F12", function() { top.location.href = "https://trickerchannelvn.blogspot.com/" }), shortcut.add("Ctrl+Shift+I", function() { top.location.href = "https://trickerchannelvn.blogspot.com/" }), shortcut.add("Ctrl+Shift+J", function() { top.location.href = "https://trickerchannelvn.blogspot.com/" }), shortcut.add("Ctrl+S", function() { top.location.href = "https://trickerchannelvn.blogspot.com/" }), shortcut.add("Ctrl+Shift+C", function() { top.location.href = "https://trickerchannelvn.blogspot.com/" }); 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") //]]></script>
Chức năng của đoạn code này bao gồm
- Chống chuột phải
- Chuyển hướng khi phát hiện người dùng dùng phím tắt
<script type='text/javascript'>//<![CDATA[ setInterval(function() { debugger; }, 1); //]]></script>
Ngoài ra bạn cũng có thể dùng 1 số thủ thuật sau để chống copy bài viết và chặn các phím tắt đơn giản bằng jquery và css
Code chống chuột trái
<style type='text/css'> body{ -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; } </style>
Code chống chuột phải
<script type='text/javascript'> //<![CDATA[ // JavaScript Document 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") //]]> </script>
Code chống Ctrl + U, chống view-sourse, chống F12
</head>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'/> <script type='text/javascript'> 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>
Chống click chuột vào hình ảnh
</body>
<script type='text/javascript'> $('body').on('contextmenu', 'img', function(e){ return false; }); </script>
Code chặn phím tắt nhưng không chuyển hướng
<script type='text/javascript'>//<![CDATA[ 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>
onkeydown="return false"
cho thẻ body
, ví dụ <body onkeydown="return false" ... >
Facebook: Dịch Vụ Mạng Xã Hội Đà Nẵng
Zalo: Dịch Vụ Đà Nẵng
Phone: 0333.110304
Gmail: mxhdn.xyz@gmail.com
Thanh toán: Ngân hàng, thẻ cào siêu rẻ, Momo, ViettelPay, card + 35% phí,...