禁用JavaScript控制台调试的方法


Posted in Javascript onMarch 07, 2014

有几个巨头公司,即Facebook和Netflix,决定禁止用户在控制台(console)执行JavaScript命令。
最初这是 由Facebook开始的 ,用于防止恶意用户通过JavaScript控制台执行特定的命令散播消息(发送给所有Facebook用户大量垃圾信息)。
当然这受到很多指责,但在我参与之前, 他们使用的代码 如下所示:

// 看起来 Netflix 似乎是唯 Facebook 马首是瞻 [https://news.ycombinator.com/item?id=7222129]. (function() { 
try { 
var $_console$$ = console; 
Object.defineProperty(window, "console", { 
get: function() { 
if ($_console$$._commandLineAPI) 
throw "抱歉, 为了用户安全, 本网站已禁用console脚本功能"; 
return $_console$$ 
}, 
set: function($val$$) { 
$_console$$ = $val$$ 
} 
}) 
} catch ($ignore$$) { 
} 
})();

虽然我人微言轻,但实际上我认为这种做法是合法的。从他们的角度来看,如果暂时禁用控制台有助于防止一个问题,那就不得不这样做。

但从长远来看,这真的不是一个好主意;其目标可能只是想要屏蔽依赖他们的目标用户。

无论如何,如果你想防止控制台执行脚本,这段代码看起来效果不错,也的确如此。

Javascript 相关文章推荐
一个cssQuery对象 javascript脚本实现代码
Jul 21 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
JS判断日期格式是否合法的简单实例
Jul 11 Javascript
jquery常用的12个小功能
Jul 22 Javascript
AngularJS实现表单验证功能
Jan 09 Javascript
限时抢购-倒计时的完整实例(分享)
Sep 17 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 28 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 15 Javascript
jquery日历控件实现方法分享
Mar 07 #Javascript
jquery.form.js用法之清空form的方法
Mar 07 #Javascript
jquery设置按钮停顿3秒不可用
Mar 07 #Javascript
jquery 实现两级导航菜单附效果图
Mar 07 #Javascript
document.addEventListener使用介绍
Mar 07 #Javascript
开发中可能会用到的jQuery小技巧
Mar 07 #Javascript
javascript匿名函数应用示例介绍
Mar 07 #Javascript
You might like
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
浅谈PHP封装CURL
2019/03/06 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
Python中operator模块的操作符使用示例总结
2016/06/28 Python
Python中取整的几种方法小结
2017/01/06 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Python实现购物车功能的方法分析
2017/11/10 Python
Numpy之文件存取的示例代码
2018/08/03 Python
python频繁写入文件时提速的方法
2019/06/26 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
python语言的优势是什么
2020/06/17 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
综治宣传月活动总结
2014/04/28 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
Python 文字识别
2022/05/11 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS