禁用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 相关文章推荐
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
JavaScript获取URL汇总
Jun 08 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
jquery中validate与form插件提交的方式小结
Mar 26 Javascript
javascript中Number的方法小结
Nov 21 Javascript
js自定义Tab选项卡效果
Jun 05 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
Jan 27 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
JS实现音量控制拖动
Jan 15 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
Aug 10 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
附件名前加网站名
2008/03/23 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
临床护理求职信
2014/04/26 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
教师节大会主持词
2015/07/06 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL