Tổng hợp code chống coppy, chống xem mã nguồn trang web đầy đủ nhất cho blogspot

Thực tế chưa có một biện pháp triệt để nào chống xem mã nguồn trang web hay chống coppy vì đó là tính năng dành cho các nhà lập trình. Tuy nhiên ta có thể hạn chế việc xem mã nguồn bằng việc sử dụng javascript.

Tổng hợp code chống coppy, chống xem mã nguồn trang web đầy đủ nhất cho blogspot

Thủ thuật này khá đơn giản bạn chỉ cần chèn 1 đoạn js vào trước thẻ đóng </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 = "xxx"
}), shortcut.add("F12", function() {
    top.location.href = "xxx"
}), shortcut.add("Ctrl+Shift+I", function() {
    top.location.href = "xxx"
}), shortcut.add("Ctrl+S", function() {
    top.location.href = "xxx"
}), shortcut.add("Ctrl+Shift+C", function() {
    top.location.href = "xxx"
});
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

Trong đó bạn cần thay xxx thành link chuyển hướng theo ý thích, bạn cũng có thể thêm không giới hạn các shortcut bằng cách nối tiếp vào code như trên.

Bên cạnh đó bạn cũng có thể dùng setInterval làm cản trở quá trình debug bằng cách thêm code sau:

<script type='text/javascript'>//<![CDATA[
setInterval(function() {
    debugger;
}, 1);
//]]></script>

* Bonus : 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 viewsourse, chống F12

Các bạn coppy code phía dưới dán vào trên thẻ đóng </head>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'/>
<script type='text/javascript'>
checkCtrl=false $(&#39;*&#39;).keydown(function(e){
if(e.keyCode==&#39;17&#39;){ checkCtrl=false  } }).keyup(function(ev){
if(ev.keyCode==&#39;17&#39;){ checkCtrl=false } }).keydown(function(event){
if(checkCtrl){
if(event.keyCode==&#39;85&#39;){ return false; } } })
</script>

Chống click chuột vào hình ảnh

Các bạn coppy code phía dưới dán vào trên thẻ đóng </body>
<script type='text/javascript'>
$('body').on('contextmenu', 'img', function(e){ return false; });
</script>

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>

Cuối cùng thêm thuộc tính onkeydown="return false" cho body, ví dụ <body onkeydown="return false" ... >

Chúc bạn thành công !

Đăng nhận xét

Mới hơn Cũ hơn