禁用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 CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
js使用cookie记录用户名的方法
Nov 26 Javascript
javascript日期验证之输入日期大于等于当前日期
Dec 13 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
Apr 12 Javascript
vue实现表格增删改查效果的实例代码
Jul 18 Javascript
配置一个vue3.0项目的完整步骤
Apr 26 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
Jquery实现获取子元素的方法分析
Aug 24 jQuery
vue设置全局访问接口API地址操作
Aug 14 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
php根据生日计算年龄的方法
2015/07/13 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python中from module import * 的一个坑
2014/07/20 Python
详解Python的单元测试
2015/04/28 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python实现动态创建类的方法分析
2019/06/25 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
苹果Mac升级:MacSales.com
2017/11/20 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
社区优秀志愿者先进事迹
2014/05/09 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
介绍信的格式
2015/01/30 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书