禁用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生成/解析dom的CDATA类型的字段的代码
Apr 22 Javascript
Mootools 1.2教程(21)——类(二)
Sep 15 Javascript
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
autoIMG 基于jquery的图片自适应插件代码
Mar 12 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
Feb 01 Javascript
关于JavaScript和jQuery的类型判断详解
Oct 08 Javascript
javascript输出AscII码扩展集中的字符方法
Dec 26 Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
Nov 23 Javascript
Vue分页效果与购物车功能
Dec 13 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
document.all与WEB标准
2020/05/13 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
layui实现数据分页功能
2019/07/27 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
项目资料员岗位职责
2013/12/10 职场文书
化学专业自荐信
2014/05/28 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python