V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amd
V2EX  ›  分享发现

网页禁用右键我见过,禁用 F12 是如何实现的?

  •  
  •   amd · 2017-12-30 20:25:50 +08:00 · 12450 次点击
    这是一个创建于 2519 天前的主题,其中的信息可能已经有所发展或是发生改变。
    示例,美少女漫画,怎么捉图片 url,https://tonarinoyj.jp/episode/13932016480029230831
    35 条回复    2018-01-01 18:06:00 +08:00
    eslizn
        1
    eslizn  
       2017-12-30 20:28:26 +08:00
    怎么实现我不知道,但是你可以先 F12 再访问呀。。。
    Midnight
        2
    Midnight  
       2017-12-30 20:30:36 +08:00
    键盘事件拦截吧?
    lniwn
        3
    lniwn  
       2017-12-30 20:32:58 +08:00 via iPhone
    fiddler
    acr0ss
        4
    acr0ss  
       2017-12-30 20:36:10 +08:00
    ctrl + shift + J

    chrome
    mokeyjay
        5
    mokeyjay  
       2017-12-30 20:41:22 +08:00
    这种网站不是 flash 就是 canvas,捉不到图片 URL 的。你可以右键审查元素
    AltairT
        6
    AltairT  
       2017-12-30 20:42:42 +08:00
    很牛啊,F12 后发现看到的图也是切割打乱的,当然我是打开之前就 F12 了
    QAPTEAWH
        8
    QAPTEAWH  
       2017-12-30 21:04:30 +08:00 via iPhone
    有本事把 prt scr 拦截了...
    tanranran
        9
    tanranran  
       2017-12-30 21:25:41 +08:00   ❤️ 3
    刚好写过这个
    http://100006.yunduanyin.com/tfh/index4Pro/

    原理:

    document.oncontextmenu = function () {//右键禁用
    return false;
    };
    document.oncopy = function () {//复制禁用
    return false;
    };

    document.addEventListener('keydown', function (e) {//按键禁用
    try {
    e = e || event || window.event;
    var keycode = e.keyCode || e.which || e.charCode;
    var ctrlKey = e.ctrlKey || e.metaKey;
    if (keycode == 123) {//F12
    e.preventDefault();
    window.event.returnValue = false;
    } else if (keycode == 8) {
    var act = document.activeElement.tagName.toLowerCase();
    if (act.indexOf("body") != -1 || act.indexOf("html") != -1) {
    window.history.back();
    return false;
    }
    return true;
    } else if (ctrlKey && keycode == 83) {//ctrl+S
    e.preventDefault();
    window.event.returnValue = false;
    } else if (ctrlKey && keycode == 87) {//ctrl+W
    e.preventDefault();
    window.event.returnValue = false;
    } else if (ctrlKey && keycode == 107) {//ctrl++
    e.preventDefault();
    window.event.returnValue = false;
    } else if (ctrlKey && keycode == 109) {//ctrl+-
    e.preventDefault();
    window.event.returnValue = false;
    } else if (keycode == 122) {//F11
    $('#switchFullScreenCloseBtn').trigger("click");
    }

    } catch (e) {
    console.error(e);
    }
    });
    tanranran
        10
    tanranran  
       2017-12-30 21:26:53 +08:00   ❤️ 1
    ctrl + shift + J
    ctrl + shift + I

    这几个楼主可以试一下
    tanranran
        11
    tanranran  
       2017-12-30 21:27:49 +08:00   ❤️ 1
    navigaid
        12
    navigaid  
       2017-12-30 21:29:06 +08:00
    ```
    // Disable right click
    $(document).on("contextmenu", function (e) {
    e.preventDefault();
    });
    ```

    ```
    // Disable F12 / Ctrl+Shift+I / Ctrl+Shift+J
    $(document).keydown(function (event) {
    if (event.keyCode == 123) { // Prevent F12
    return false;
    } else if (event.ctrlKey && event.shiftKey && event.keyCode == 73) { // Prevent Ctrl+Shift+I
    return false;
    } else if (event.ctrlKey && event.shiftKey && event.keyCode == 74) { // Prevent Ctrl+Shift+J
    return false;
    }
    });
    ```
    nlysh007
        13
    nlysh007  
       2017-12-30 21:40:26 +08:00
    调试窗口设置成单独显示就行了
    mopiaoyao
        14
    mopiaoyao  
       2017-12-30 21:44:08 +08:00 via Android   ❤️ 2
    越是大站越不会斤斤计较
    chinvo
        15
    chinvo  
       2017-12-30 21:45:24 +08:00
    禁用按键并不能阻挡你从菜单开开发者工具

    图是切了用 canvas 画出来的,没深入研究

    这个思路有点意思
    Fishdrowned
        16
    Fishdrowned  
       2017-12-30 21:45:51 +08:00
    中键再右键可破
    YyYyYyy
        17
    YyYyYyy  
       2017-12-30 21:47:36 +08:00
    @mopiaoyao 你想多了,和站大不大无关
    日本网站基本都喜欢这样,那边连歌词也是讲版权的,不让随便复制粘贴
    learnshare
        18
    learnshare  
       2017-12-30 21:49:39 +08:00
    document.addEventListener('keydown', (event) => { if (event.keyCode === 123) { event.preventDefault(); } })

    http://keycode.info/
    crab
        20
    crab  
       2017-12-30 22:34:34 +08:00
    cnwtex
        21
    cnwtex  
       2017-12-30 22:37:52 +08:00
    一张图分成 16 块,横着读 1234 块,竖着排就复原了,肉眼可以看出的规律啊
    sobigfish
        22
    sobigfish  
       2017-12-30 22:50:07 +08:00
    这种应该可以用 https://github.com/GoogleChrome/puppeteer 来破 直接把显示出来的截图 😂
    cnyang
        23
    cnyang  
       2017-12-31 00:40:31 +08:00
    点地址栏再按也行
    beastk
        24
    beastk  
       2017-12-31 00:41:26 +08:00 via iPhone
    菜单打开调试器就好
    grimpil
        25
    grimpil  
       2017-12-31 01:06:04 +08:00 via Android
    我上次遇到禁 F12 的页面是用记事本直接打开 url 看源码,居然真打开了
    xiaocsl
        26
    xiaocsl  
       2017-12-31 07:13:47 +08:00
    禁用右键和 F12 都较简单,以 Chrome 为例,你使用 Ctrl+Shift+I 可以打开控制台,或者从 菜单>更多工具>开发者工具 手动点也能打开,如果你需要"真正的禁用控制台"可以看一下这个帖子,效果要更好一些. /t/412867
    doubleflower
        27
    doubleflower  
       2017-12-31 08:29:43 +08:00 via Android
    还可以监视网页窗口大小,发现突然高度小了一块,就说明开调试工具了
    gkiwi
        28
    gkiwi  
       2017-12-31 13:27:09 +08:00   ❤️ 1
    楼上的,你们没往前翻几页看看么?开车了。。。
    M4ster
        29
    M4ster  
       2017-12-31 14:19:30 +08:00
    Emmm... 如果是 Chrome,是有办法检测 console 是否打开了的。
    xFan
        30
    xFan  
       2017-12-31 14:31:08 +08:00
    ctrl + shift + i chrome 上

    或者 更多工具, 开发者工具- -#· chrome 上
    components
        31
    components  
       2017-12-31 16:53:07 +08:00
    https://github.com/sindresorhus/devtools-detect
    一旦发现用户开启控制台,就强行关闭 tab
    其实,也没啥用的,用户可以禁用 JS,用户可以抓包,等等
    破法很多的
    TestSmirk
        32
    TestSmirk  
       2017-12-31 17:44:37 +08:00
    ctrl + shift + i,j,c 都能打开...
    xuexixuexi2
        33
    xuexixuexi2  
       2017-12-31 19:13:47 +08:00
    是打开开发者工具吗?我用 Opera 可以打开啊
    xuexixuexi2
        34
    xuexixuexi2  
       2017-12-31 19:15:50 +08:00
    dokimaster
        35
    dokimaster  
       2018-01-01 18:06:00 +08:00
    截图抓图怎样- -,好像跑题了。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1114 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.