禁用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 相关文章推荐
字段太多jquey快速清空表单内容方法
Aug 21 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
JavaScript中的继承方式详解
Feb 11 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
js实现n秒倒计时后才可以点击的效果
Dec 20 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
Mar 31 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
Jul 07 Javascript
深入Vue-Router路由嵌套理解
Aug 13 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
Oct 30 Javascript
微信小程序sessionid不一致问题解决
Aug 30 Javascript
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
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并发访问实例代码
2012/09/06 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
angularjs基础教程
2014/12/25 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
Python入门之三角函数全解【收藏】
2017/11/08 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
python打开使用的方法
2019/09/30 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
python3中数组逆序输出方法
2020/12/01 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
培训讲师邀请函
2014/01/10 职场文书
英语教学随笔感言
2014/02/20 职场文书
电力安全事故反思
2014/04/27 职场文书
销售提升方案
2014/06/07 职场文书
建筑工地标语
2014/06/18 职场文书
班级体育活动总结
2014/07/05 职场文书
学校开学标语
2014/10/06 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
JS ES6异步解决方案
2021/04/29 Javascript