禁用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 相关文章推荐
javascript TextArea动态显示剩余字符
Oct 22 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
Feb 02 Javascript
Jquery实现显示和隐藏的4种简单方式
Aug 28 Javascript
子页向父页传值示例
Nov 27 Javascript
Android中的jQuery:AQuery简介
May 06 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
jQuery插件Validation表单验证详解
May 26 jQuery
Vue将props值实时传递 并可修改的操作
Aug 09 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
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
Python Matplotlib库入门指南
2015/05/18 Python
python发送HTTP请求的方法小结
2015/07/08 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
高考自主招生自荐信
2013/10/20 职场文书
电气个人求职信范文
2014/02/04 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
感恩主题班会教案
2015/08/12 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL