禁用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 相关文章推荐
jquery 简单导航实现代码
Sep 11 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
jquery if条件语句的写法
May 19 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
Jun 22 Javascript
JavaScript面试开发常用的知识点总结
Aug 08 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
webuploader实现上传图片到服务器功能
Aug 16 Javascript
Layui点击图片弹框预览的实现方法
Sep 16 Javascript
JS Array.from()将伪数组转换成数组的方法示例
Mar 23 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
PHP提取中文首字母
2008/04/09 PHP
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
python逆向入门教程
2018/01/15 Python
python 堆和优先队列的使用详解
2019/03/05 Python
python实现猜数字游戏
2020/03/25 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
天网面试题
2013/04/07 面试题
学校门卫管理制度
2014/01/30 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
经管应届生求职信范文
2014/05/18 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
同学聚会通知短信
2015/04/20 职场文书
爱国电影观后感
2015/06/19 职场文书
运动会班级前导词
2015/07/20 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript