游客发表
你按F12,网站控制台没反应,禁止鼠标右键也被屏蔽。网站网站开发者用几行JavaScript就把调试工具锁死了,禁止这招防的网站是普通用户,不是禁止真正想扒代码的人。真正想看的网站,早就用快捷键或者地址栏绕过去了。禁止
先说个我自己的网站事。去年维护一个老项目,禁止后台管理页面被人加了禁用右键的网站脚本。我同事急得满头大汗,禁止说这网站没法调试了。网站我走过去,禁止按了下Ctrl+Shift+I,网站控制台直接弹出来。他愣了一下,然后笑了。就这么简单——那些禁用F12的脚本,基本只监听keydown事件里的F12键码,你换个组合键它就管不着了。
更绝的是有些网站连Ctrl+Shift+I也拦。那也好办,你打开浏览器菜单,找到“更多工具”里的“开发者工具”,点一下照样出来。菜单总没法屏蔽吧?除非网站能控制你的浏览器界面,那它就不是网页,是病毒了。
还有更土的办法。地址栏里输入javascript:void(document.oncontextmenu=null)再回车,右键菜单就解禁了。这招对付那种只屏蔽右键的网站特别灵,一行代码的事。不过现在很多网站学聪明了,把事件绑定在捕获阶段,你光清掉document上的还不够。那就干脆点,用浏览器的无痕模式打开,很多插件和脚本在无痕模式下默认不加载,屏蔽自然就失效了。
你要是真想跟这种网站较劲,有个更狠的思路——直接禁用JavaScript。Chrome设置里把JavaScript关掉,刷新页面,所有基于JS的屏蔽全废了。但代价是页面排版可能乱掉,有些内容加载不出来。这就像用大锤砸锁,门开了,墙也塌了半边。适合那种只是临时想看个文字内容的场景,真要调试还是得把JS打开。
我见过最奇葩的一个案例,某视频网站用定时器检测devtools是否打开,一旦检测到就暂停播放并弹出黑屏。那玩意儿怎么破?你先把devtools停靠在右侧,然后把窗口宽度拉窄,让devtools区域超出屏幕可视范围。检测脚本判断的是window.outerWidth - window.innerWidth > 160这种阈值,你让差值小于它检测的临界值,它就以为你没开。这种猫鼠游戏玩起来挺有意思,但也说明了一个道理:所有前端封锁都是纸老虎。
说到底,网站屏蔽F12的动机无非三种:防小白误操作改坏页面,防爬虫批量抓数据,防竞争对手直接扒源码。第一种是产品经理的过度保护,第二种是技术上的掩耳盗铃——真想爬数据的用Python写个脚本,跟你浏览器开不开控制台没半毛钱关系。第三种更可笑,前端代码本来就是明文发给浏览器的,你屏蔽F12只是增加了一点点查看成本,稍微懂点技术的人用curl都能把源码拉下来。
所以我的态度很明确:碰到禁用F12的网站,别跟它较劲,换个思路绕过去。浏览器是用户的主场,网站只是客人。客人想在主人家里设禁入区,主人有的是办法拆门。记住,任何前端限制都只是纸糊的窗户,捅破它只需要一点点好奇心和几个快捷键。你真正该担心的不是打不开控制台,而是打开了却看不懂里面的报错信息。
友情链接