禁用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 相关文章推荐
ext读取两种结构的xml的代码
Nov 05 Javascript
JQuery 网站换肤功能实现代码
Nov 02 Javascript
JavaScript DOM基础
Apr 13 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
Feb 28 Javascript
vue-cli webpack2项目打包优化分享
Feb 07 Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 Javascript
javascript实现动态时钟的启动和停止
Jul 29 Javascript
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
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
ajax php 实现写入数据库
2009/09/02 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP中文乱码解决方案
2015/03/05 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP类的封装与继承详解
2015/09/29 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python 连连看连接算法
2008/11/22 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
物业管理求职自荐信
2013/09/25 职场文书
影视广告专业求职信
2014/09/02 职场文书
行政主管岗位职责
2015/02/03 职场文书
同事打架检讨书
2015/05/06 职场文书
小学毕业感言100字
2015/07/30 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS