zhangpeter
V2EX  ›  问与答

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

  •  1
     
  •   zhangpeter · Mar 7, 2019 · 20331 views
    This topic created in 2799 days ago, the information mentioned may be changed or developed.

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

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

    67 replies  •  2020-06-07 10:50:07 +08:00
    dullwit
    dullwit
    Mar 7, 2019
    1
    没什么用,浏览器输入 view-source:https://getitfree.cn 一样的看源码
    调试的话,从菜单栏就可以打开调试工具
    估计是挡小白,至于如何实现:在 js 里面有拦截 keyCode
    hayi
    hayi
    Mar 7, 2019❤️3
    2
    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
    lingo
    Mar 7, 2019❤️5
    3
    是真的没用。。。我为什么要先开网页再按 F12 ?
    我就不能先按 F12 再进这个网页么。
    Hypn0s
    Hypn0s
    Mar 7, 2019
    4
    document.ondragstart=function(){return false}; //for image
    document.oncontextmenu=function(e){return false}; //for right click disable

    补充一下上面两行
    yggd
    yggd
    Mar 7, 2019
    5
    监听键盘事件
    koor
    koor
    Mar 7, 2019
    6
    在源码最后一行
    ```
    <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
    tabris17
    Mar 7, 2019❤️8
    7
    太太太幼稚了

    太太太低级了

    你把输入焦点放在浏览器地址栏,然后按下 F12 就可以打开调试窗口了。
    x86
    x86
    Mar 7, 2019❤️1
    8
    问题我是按 option+command+j
    ochatokori
    ochatokori
    Mar 7, 2019 via Android
    9
    挡挡小白就禁止关了右键(contextmeau)事件和监听键盘禁用一些快捷键,真要防防不住
    boris1993
    boris1993
    Mar 7, 2019 via Android
    10
    问题我是按⌥⌘I
    Vegetable
    Vegetable
    Mar 7, 2019❤️20
    11
    "领导你看,我们做这个网页,按 F12 没反应,也不能点击右键,图片根本复制不出去,最大限度的保证了我们站内资源的安全!"
    Exia
    Exia
    Mar 7, 2019❤️1
    12
    不知道做这个功能由什么用啊,一般人用不上,用得上的人也挡不了。
    DnC
    DnC
    Mar 7, 2019
    13
    同 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}
    };
    lzvezr
    lzvezr
    Mar 7, 2019 via iPhone
    15
    大概就是做做样子吧,还是可以防住一些人的
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Mar 7, 2019
    16
    问题我是按⌥⌘I +1
    FakeLeung
    FakeLeung
    Mar 7, 2019
    17
    可以防得住 90% 的人,够了。
    limingjie138
    limingjie138
    Mar 7, 2019 via iPhone
    18
    之前某解析网站除了网页资源爬虫,开发者工具不允许开,不管用什么方法
    tuding
    tuding
    Mar 7, 2019
    19
    @limingjie138 #18 有点好奇, 发出来瞧瞧呢
    ByteRan
    ByteRan
    Mar 7, 2019❤️2
    20
    @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
    Solace202
    Mar 7, 2019 via Android
    21
    攻防转换,令人窒息
    demo
    demo
    Mar 7, 2019
    22
    幼稚,我按 ⌥⌘I
    di1012
    di1012
    Mar 7, 2019
    23
    鼠标点开发者工具不就行了
    ytlook
    ytlook
    Mar 7, 2019
    24
    GetItFree.cn 的中文名叫正版中国,也是蛮有意思的。
    bullfrog
    bullfrog
    Mar 7, 2019
    25
    幼稚,视图-开发者-开发者工具
    thelderfrog
    thelderfrog
    Mar 7, 2019❤️1
    26
    禁止不了的
    ```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
    crab
    Mar 7, 2019
    27
    @limingjie138 有的是死循环 debug,有的直接退出当前网页,后来是找出功能相关的 js,屏蔽这个 js 文件的请求。
    ChiangDi
    ChiangDi
    Mar 7, 2019
    28
    有啥用 我按 command shift c 就打开了
    WuwuGin
    WuwuGin
    Mar 7, 2019
    29
    nanaw
    nanaw
    Mar 7, 2019 via Android
    30
    哈哈之前一个辣鸡刷课网站 halnedu.com 就这么搞,然后我 chrome 菜单里面打开开发工具清楚的看到 index.js 里面还带着注释“禁用右键,禁用 f12 ”。真的是蠢到家
    iblessyou
    iblessyou
    Mar 7, 2019❤️1
    31
    @nanaw 都是挡小白的,对于大神写不写都一样。

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

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

    所以其实拦的不是小白,是某种意义上的伸手党,F12 一按就想抄。同样都是小白,能自己找寻破解方法和不愿意找的还是不一样的。
    zw1one
    zw1one
    Mar 8, 2019 via Android
    61
    chrome 下 ctr shift c
    thelderfrog
    thelderfrog
    Mar 9, 2019
    62
    @binux 断点调试可以跳过和关闭,最后会执行到 log
    binux
    binux
    Mar 9, 2019
    63
    @thelderfrog #62 我看到你在检测 debugger 了,我干嘛还要跳过?
    thelderfrog
    thelderfrog
    Mar 10, 2019 via iPhone
    64
    @binux 不用管是否会被跳过,只是把被跳过后的情况覆盖到
    limingjie138
    limingjie138
    Mar 11, 2019
    65
    @tuding 找了好几天 没找到网站,可能凉了 好久以前看高清枪电遇到的
    zhwei1228
    zhwei1228
    Jun 7, 2020
    66
    如果一打开前端控制台就会跳转到一个提示页面该怎么破呢?请教各位大神
    zhwei1228
    zhwei1228
    Jun 7, 2020
    67
    我想看的是控制台中某个请求中 preview 中的数据,不知道有什么办法能看到,请教各位大神
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1321 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 126ms · UTC 19:58 · PVG 03:58 · LAX 11:58 · JFK 14:58
    ♥ Do have faith in what you're doing.