This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.
Author Image Monday, 7 May 2018

Tổng hợp code chống xem mã nguồn trang web


Thực tế chưa có một biện pháp triệt để nào chống xem mã nguồn trang web 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

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>

Code có dạng

<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

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>

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 !
Comments:
Bạn được tự do bày tỏ quan điểm nhưng nghiêm cấm spam
  • Chèn ảnh theo mẫu [img]link[/img]
  • Chèn video Youtube theo mẫu [youtube]link[/youtube]
  • Chèn code theo mẫu [pre]code[/pre]. Lưu ý: mã hóa code trước khi bình luận

  • Please wait while i am loading Facebook SDK js