禁用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 相关文章推荐
摘自百度的图片轮换效果代码
Nov 19 Javascript
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
Nov 23 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
Jun 29 Javascript
50款非常棒的 jQuery 插件分享
Mar 29 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
Nov 24 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
Aug 19 Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
详解angular中的作用域及继承
May 31 Javascript
js尾调用优化的实现
May 23 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 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 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php四种基础算法代码实例
2013/10/29 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
js CSS操作方法集合
2008/10/31 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
js格式化时间的方法
2015/12/18 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
Python随机数函数代码实例解析
2020/02/09 Python
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
程序集与命名空间有什么不同
2014/07/25 面试题
优秀党支部书记事迹材料
2014/05/29 职场文书
综艺节目策划方案
2014/06/13 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL