禁用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 事件的一些重要说明
Oct 25 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
用JavaScript实现页面重定向功能的教程
Jun 04 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
bootstrap实现每隔5秒自动轮播效果
Dec 20 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 Javascript
vue.js或js实现中文A-Z排序的方法
Mar 08 Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 Javascript
解决vue v-for src 图片路径问题 404
Nov 12 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
一个简单计数器的源代码
2006/10/09 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
php 判断数组是几维数组
2013/03/20 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
python 图片验证码代码分享
2012/07/04 Python
简单谈谈Python中的闭包
2016/11/30 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
老公保证书范文
2014/04/29 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python