V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhangpeter
V2EX  ›  问与答

网页如何做到禁止 F12 和右键的?

  •  1
     
  •   zhangpeter · 2019-03-07 10:22:33 +08:00 · 18556 次点击
    这是一个创建于 2122 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我打开正版中国的网站: https://getitfree.cn/

    然后我发现我在这个页面上按 F12 或者右键都没反应,问一下 V2EX 的大佬们,这是怎么做到的?

    67 条回复    2020-06-07 10:50:07 +08:00
    dullwit
        1
    dullwit  
       2019-03-07 10:27:22 +08:00
    没什么用,浏览器输入 view-source:https://getitfree.cn 一样的看源码
    调试的话,从菜单栏就可以打开调试工具
    估计是挡小白,至于如何实现:在 js 里面有拦截 keyCode
    hayi
        2
    hayi  
       2019-03-07 10:29:40 +08:00   ❤️ 3
    document.onkeydown = function(e) {
    if (e.ctrlKey &&
    (e.keyCode === 65 ||
    e.keyCode === 67 ||
    e.keyCode === 73 ||
    e.keyCode === 74 ||
    e.keyCode === 80 ||
    e.keyCode === 83 ||
    e.keyCode === 85 ||
    e.keyCode === 86 ||
    e.keyCode === 117
    )) {
    return false;
    }
    if(e.keyCode==18||e.keyCode==123){return false}
    };
    lingo
        3
    lingo  
       2019-03-07 10:30:01 +08:00   ❤️ 5
    是真的没用。。。我为什么要先开网页再按 F12 ?
    我就不能先按 F12 再进这个网页么。
    Hypn0s
        4
    Hypn0s  
       2019-03-07 10:31:18 +08:00
    document.ondragstart=function(){return false}; //for image
    document.oncontextmenu=function(e){return false}; //for right click disable

    补充一下上面两行
    yggd
        5
    yggd  
       2019-03-07 10:31:32 +08:00
    监听键盘事件
    koor
        6
    koor  
       2019-03-07 10:32:42 +08:00
    在源码最后一行
    ```
    <script type="text/Javascript">
    function inlobase_noF12(){if(! current_user_can( 'edit_posts' )){while(1){}}function inlojv_console(){if((window.console&&(console.firebug||console.table&&/firebug/i.test(console.table())))||(typeof opera=="object"&&typeof opera.postError=="function"&&console.profile.length>0)){inlobase_noF12()}if(typeof console.profiles=="object"&&console.profiles.length>0){inlobase_noF12()}}inlojv_console();window.onresize=function(){if((window.outerHeight-window.innerHeight)>200){inlobase_noF12()}}};
    </script>
    ```
    tabris17
        7
    tabris17  
       2019-03-07 10:33:11 +08:00   ❤️ 8
    太太太幼稚了

    太太太低级了

    你把输入焦点放在浏览器地址栏,然后按下 F12 就可以打开调试窗口了。
    x86
        8
    x86  
       2019-03-07 10:33:55 +08:00   ❤️ 1
    问题我是按 option+command+j
    ochatokori
        9
    ochatokori  
       2019-03-07 10:36:52 +08:00 via Android
    挡挡小白就禁止关了右键(contextmeau)事件和监听键盘禁用一些快捷键,真要防防不住
    boris1993
        10
    boris1993  
       2019-03-07 10:40:26 +08:00 via Android
    问题我是按⌥⌘I
    Vegetable
        11
    Vegetable  
       2019-03-07 10:44:02 +08:00   ❤️ 20
    "领导你看,我们做这个网页,按 F12 没反应,也不能点击右键,图片根本复制不出去,最大限度的保证了我们站内资源的安全!"
    Exia
        12
    Exia  
       2019-03-07 10:47:10 +08:00   ❤️ 1
    不知道做这个功能由什么用啊,一般人用不上,用得上的人也挡不了。
    DnC
        13
    DnC  
       2019-03-07 10:48:30 +08:00
    同 2 楼,哈哈,自己看下页面代码呀,

    document.ondragstart=function(){return false}; //for image
    document.oncontextmenu=function(e){return false}; //for right click disable
    document.onkeydown = function(e) {
    if (e.ctrlKey &&
    (e.keyCode === 65 ||
    e.keyCode === 67 ||
    e.keyCode === 73 ||
    e.keyCode === 74 ||
    e.keyCode === 80 ||
    e.keyCode === 83 ||
    e.keyCode === 85 ||
    e.keyCode === 86 ||
    e.keyCode === 117
    )) {
    return false;
    }
    if(e.keyCode==18||e.keyCode==123){return false}
    };
    JamesR
        14
    JamesR  
       2019-03-07 11:02:50 +08:00   ❤️ 1
    lzvezr
        15
    lzvezr  
       2019-03-07 11:06:20 +08:00 via iPhone
    大概就是做做样子吧,还是可以防住一些人的
    littleylv
        16
    littleylv  
       2019-03-07 11:11:54 +08:00
    问题我是按⌥⌘I +1
    FakeLeung
        17
    FakeLeung  
       2019-03-07 11:14:42 +08:00
    可以防得住 90% 的人,够了。
    limingjie138
        18
    limingjie138  
       2019-03-07 11:20:06 +08:00 via iPhone
    之前某解析网站除了网页资源爬虫,开发者工具不允许开,不管用什么方法
    tuding
        19
    tuding  
       2019-03-07 11:28:47 +08:00
    @limingjie138 #18 有点好奇, 发出来瞧瞧呢
    tanranran
        20
    tanranran  
       2019-03-07 11:34:15 +08:00   ❤️ 2
    @limingjie138 #18 #18


    `<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    123
    <script>
    function checkDebugger(){
    const d=new Date();
    debugger;
    const dur=Date.now()-d;
    if(dur<5){
    return false;
    }else{
    return true;
    }
    }
    function breakDebugger(){
    if(checkDebugger()){
    breakDebugger();
    }
    }

    document.body.onclick=function(){
    breakDebugger();
    alert(1);
    };
    </script>
    </body>`
    Solace202
        21
    Solace202  
       2019-03-07 11:43:59 +08:00 via Android
    攻防转换,令人窒息
    demo
        22
    demo  
       2019-03-07 11:48:12 +08:00
    幼稚,我按 ⌥⌘I
    di1012
        23
    di1012  
       2019-03-07 11:52:32 +08:00
    鼠标点开发者工具不就行了
    ytlook
        24
    ytlook  
       2019-03-07 12:07:55 +08:00
    GetItFree.cn 的中文名叫正版中国,也是蛮有意思的。
    bullfrog
        25
    bullfrog  
       2019-03-07 12:40:39 +08:00
    幼稚,视图-开发者-开发者工具
    thelderfrog
        26
    thelderfrog  
       2019-03-07 13:12:32 +08:00   ❤️ 1
    禁止不了的
    ```setInterval(function() {
    var t1 = Date.now();
    debugger;
    var t2 = Date.now();
    if (t2 - t1 > 100) {
    console.log('debug detected');
    // send_log('ban this ip');
    }
    }, 500);```
    crab
        27
    crab  
       2019-03-07 13:17:49 +08:00
    @limingjie138 有的是死循环 debug,有的直接退出当前网页,后来是找出功能相关的 js,屏蔽这个 js 文件的请求。
    ChiangDi
        28
    ChiangDi  
       2019-03-07 13:24:44 +08:00
    有啥用 我按 command shift c 就打开了
    WuwuGin
        29
    WuwuGin  
       2019-03-07 13:29:01 +08:00
    nanaw
        30
    nanaw  
       2019-03-07 14:06:00 +08:00 via Android
    哈哈之前一个辣鸡刷课网站 halnedu.com 就这么搞,然后我 chrome 菜单里面打开开发工具清楚的看到 index.js 里面还带着注释“禁用右键,禁用 f12 ”。真的是蠢到家
    iblessyou
        31
    iblessyou  
       2019-03-07 14:21:37 +08:00   ❤️ 1
    @nanaw 都是挡小白的,对于大神写不写都一样。

    以前玩魔兽争霸,很多人会用个工具给地图加作弊功能,那工具默认开启作弊是方向 上上左下,
    当时我们刚开始作图水平低,大家也没什么好办法防改图作弊,
    我想个办法,当按方向键时会提示其他人有人开启作弊同时做其他处理,
    还别说,一时清静了好多,后来发现好多其他图也有这功能 (¬_¬)
    nanaw
        32
    nanaw  
       2019-03-07 14:26:18 +08:00 via Android
    @iblessyou 右键挡小白也就算了。f12 真没必要。但凡用到 f12 的人又怎么可能挡得住
    qping
        33
    qping  
       2019-03-07 15:19:51 +08:00
    @JamesR #14 chrome 插件太多了,我去油猴上搜了搜,还真搜到了一个
    onlyice
        34
    onlyice  
       2019-03-07 15:54:56 +08:00 via Android
    @iblessyou 解答了我 N 年前的疑惑。。
    canbingzt
        35
    canbingzt  
       2019-03-07 16:07:45 +08:00
    @thelderfrog
    我遇到一个网站,打开 F12 后,就会进入一个断点,怎么都跳不过去,应该就是这样的
    rabbit
        36
    rabbit  
       2019-03-07 16:27:21 +08:00
    我也遇到了一个网站 调试代码界面只要开着 他就会告诉你 你开着调试 请关闭再刷新
    这种是怎么做到的
    iblessyou
        37
    iblessyou  
       2019-03-07 16:50:13 +08:00
    @onlyice 为什么按方向键会有提示?
    watch
        38
    watch  
       2019-03-07 16:52:02 +08:00 via iPhone
    我骗我自己
    1072512118
        39
    1072512118  
       2019-03-07 17:03:21 +08:00
    @rabbit 判断浏览器的可视高度和可视宽度是否有改变
    rain0002009
        40
    rain0002009  
       2019-03-07 17:18:56 +08:00
    幼稚 禁用 js 想干啥干啥
    opengps
        41
    opengps  
       2019-03-07 17:23:16 +08:00
    前几楼已经有人道出了真谛,仅仅是用 js 防止了 keycode,阻挡小白看代码而已
    lynan
        42
    lynan  
       2019-03-07 17:28:01 +08:00
    mac 上 chrome 开发者工具是 cmd + option + i,它这个也不管用
    嘤嘤嘤。
    ayase252
        43
    ayase252  
       2019-03-07 17:30:36 +08:00
    骗自己,dev tool 是浏览器的功能,你能阻止我打开?
    chrome 三个点->更多工具->开发者工具 不谢
    Yourshell
        44
    Yourshell  
       2019-03-07 18:08:17 +08:00
    你需要使用你的网站黑掉用户浏览器
    zachlhb
        45
    zachlhb  
       2019-03-07 18:10:50 +08:00 via Android
    不管你怎么禁,我用 IE 把 javascript 禁止不就行了
    tyrealgray
        46
    tyrealgray  
       2019-03-07 18:13:46 +08:00
    NicholasYX
        47
    NicholasYX  
       2019-03-07 18:17:07 +08:00 via iPhone
    没有用
    onlyice
        48
    onlyice  
       2019-03-07 19:46:03 +08:00
    @iblessyou #37 我不知道有这种方式作弊,但是看到屏幕上不停显示有人可能在作弊,就觉得很奇怪
    ooh
        49
    ooh  
       2019-03-07 22:31:41 +08:00
    掩耳盗铃而已,我都想看了,你还能防止我?
    nicevar
        50
    nicevar  
       2019-03-07 22:43:43 +08:00
    windows 上 ctrl+shift+I 也是可以的
    flynaj
        51
    flynaj  
       2019-03-07 23:31:55 +08:00 via Android
    确实没有什么用处,可以点菜单的。
    Liberal0
        52
    Liberal0  
       2019-03-08 01:43:26 +08:00 via Android
    @nicevar 试了下,Ctrl+shift+i 也禁止了→_→
    binux
        53
    binux  
       2019-03-08 05:42:46 +08:00 via Android
    @thelderfrog 你代码执行都被断掉了,还发啥 log 哦
    cpdyj0
        54
    cpdyj0  
       2019-03-08 08:20:27 +08:00
    @rabbit 上面那个代码似乎就是干这个用的,开不开开发者工具 console.log 执行时间不一致
    jackchao7432
        55
    jackchao7432  
       2019-03-08 08:39:38 +08:00
    @Vegetable 就怕领导懂技术
    Rehtt
        56
    Rehtt  
       2019-03-08 09:02:56 +08:00 via Android
    这只是挡小白和唬门外汉的。
    nicevar
        57
    nicevar  
       2019-03-08 09:29:16 +08:00
    @Liberal0 哪里禁止了,直接就开启了,mac 也是可以的
    xiaoyang7545
        58
    xiaoyang7545  
       2019-03-08 09:39:58 +08:00
    @bullfrog 可以检测的 debuger 的那个最终的状态的。详情 20 楼
    wolfie
        59
    wolfie  
       2019-03-08 11:00:07 +08:00
    alt + d -> cntrl + shift + i
    ibegyourpardon
        60
    ibegyourpardon  
       2019-03-08 11:34:30 +08:00
    没啥好嘲笑的,小白这东西,拦一个是一个。

    小白如果自己愿意上网查找答案,发现原来可以轻松破解,那也是好事,那意味着小白也多少学到了一点点新东西。

    所以其实拦的不是小白,是某种意义上的伸手党,F12 一按就想抄。同样都是小白,能自己找寻破解方法和不愿意找的还是不一样的。
    zw1one
        61
    zw1one  
       2019-03-08 12:51:52 +08:00 via Android
    chrome 下 ctr shift c
    thelderfrog
        62
    thelderfrog  
       2019-03-09 00:41:14 +08:00
    @binux 断点调试可以跳过和关闭,最后会执行到 log
    binux
        63
    binux  
       2019-03-09 02:24:30 +08:00
    @thelderfrog #62 我看到你在检测 debugger 了,我干嘛还要跳过?
    thelderfrog
        64
    thelderfrog  
       2019-03-10 14:13:12 +08:00 via iPhone
    @binux 不用管是否会被跳过,只是把被跳过后的情况覆盖到
    limingjie138
        65
    limingjie138  
       2019-03-11 21:24:12 +08:00
    @tuding 找了好几天 没找到网站,可能凉了 好久以前看高清枪电遇到的
    zhwei1228
        66
    zhwei1228  
       2020-06-07 10:48:08 +08:00
    如果一打开前端控制台就会跳转到一个提示页面该怎么破呢?请教各位大神
    zhwei1228
        67
    zhwei1228  
       2020-06-07 10:50:07 +08:00
    我想看的是控制台中某个请求中 preview 中的数据,不知道有什么办法能看到,请教各位大神
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2840 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:07 · PVG 08:07 · LAX 16:07 · JFK 19:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.