禁用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 相关文章推荐
js精度溢出解决方案
Dec 02 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
node.js中的fs.createWriteStream方法使用说明
Dec 17 Javascript
javascript原生ajax写法分享
Apr 10 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
Apr 13 Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 Javascript
jQuery中each方法的使用详解
Mar 18 jQuery
原生实现一个react-redux的代码示例
Jun 08 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
vue使用自定义指令实现拖拽
Jan 29 Javascript
微信小程序实现可长按移动控件
Nov 01 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
德生H-501的评价与改造
2021/03/02 无线电
初品cakephp 入门基础
2012/02/16 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
详解Python编程中基本的数学计算使用
2016/02/04 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
python使用turtle库绘制树
2018/06/25 Python
python 列表降维的实例讲解
2018/06/28 Python
python配置文件写入过程详解
2019/10/19 Python
python多进程使用函数封装实例
2020/05/02 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
传播学专业毕业生自荐信
2013/11/04 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
汽车维修专业个人求职信范文
2014/01/01 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
地震捐款倡议书
2014/08/29 职场文书
新年晚会开场白
2015/05/29 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书