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

这个网站前端是怎么做到不让用户看源代码的?

  •  3
     
  •   KarenbabyQ · 2017-03-05 22:51:30 +08:00 · 3257 次点击
    这是一个创建于 2616 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Chrome 里打开 https://app.expertoption.com 想看看它的 html 代码,结果一开 console 就开启了 Debugger, 接着页面代码就变成了一些没意义的东西,就没办法看它的 html 代码了。再过会儿浏览器就会卡死。这个 debugger 是怎么搞的? html 代码又是如何被它隐藏的呢?

    有大牛知道这是什么原理吗?谢谢!

    第 1 条附言  ·  2017-03-06 11:03:58 +08:00
    忘了备注了,这个问题得登录后出现图标才能复现。(并不是骗注册
    第 2 条附言  ·  2017-03-06 19:53:00 +08:00
    基本原理就像楼下 @ZhaoMiing 所说的那样,会死循环的方式触发 debugger. 阻止用户看代码。

    一种比较简单的解决方案是 Chrome 下装一个 firebug( https://getfirebug.com/firebuglite ) 严格讲 firebug 并不算 console, 于是就不会触发了。
    11 条回复    2017-03-06 11:01:56 +08:00
    coldwinds
        1
    coldwinds  
       2017-03-05 23:03:54 +08:00 via Android
    wget
    tony1016
        2
    tony1016  
       2017-03-05 23:33:40 +08:00
    不让看 HTML 源码的方式是有的,最近我司在测试某公司一款产品,其可以对 HTML 和 JS 进行动态混淆,虽说毕竟要交给浏览器解释,理论上还是可能读懂源码,但是已经混淆的太厉害,起到了保护的作用
    avrillavigne
        3
    avrillavigne  
       2017-03-05 23:48:06 +08:00
    这个网页有外部资源要开代理,我查看源码 并没有卡死。
    cnwtex
        4
    cnwtex  
       2017-03-05 23:58:16 +08:00
    lecher
        5
    lecher  
       2017-03-05 23:58:53 +08:00 via Android
    可以监听 console 开启状态,非要做这么伤用户体验的事情也可以做得到的,监听到 console 开启,立刻进行页面自毁。
    ByZHkc3
        6
    ByZHkc3  
       2017-03-06 00:00:52 +08:00
    这网站用的 angularJs 写的前端
    markx
        7
    markx  
       2017-03-06 00:06:01 +08:00
    我这里看代码并没有问题,也没有开启 debugger
    ZhaoMiing
        8
    ZhaoMiing  
       2017-03-06 00:09:34 +08:00
    目测是有个定时器去不断检查 devtools 开启状态(不要问我怎么检测到的,前端从来就不却奇技淫巧),如果开启的话就不断执行这段函数,目的就是把你卡死。
    ```
    {function anonymous() {
    debugger
    }}
    ```
    bozong
        9
    bozong  
       2017-03-06 00:11:12 +08:00 via iPhone
    sunjourney
        10
    sunjourney  
       2017-03-06 10:12:46 +08:00
    我这里看没有问题
    KarenbabyQ
        11
    KarenbabyQ  
    OP
       2017-03-06 11:01:56 +08:00
    `view-source:https://app.expertoption.com/` 当然不会有问题,但这样也看不到什么内容。这个页面的大部分 html 内容是 js 动态加载的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   771 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:21 · PVG 05:21 · LAX 14:21 · JFK 17:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.