禁用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 Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
JavaScript 中的事件教程
Apr 05 Javascript
简短几句 通俗解释javascript的闭包
Jan 17 Javascript
jquery中通过父级查找进行定位示例
Jun 28 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
超实用的JavaScript代码段 附使用方法
May 22 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
JavaScript用200行代码制作打飞机小游戏实例
Jun 21 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 jQuery
Bootstrap4 gulp 配置详解
Jan 06 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/11/16 PHP
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
多版本Python共存的配置方法
2017/05/22 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
python sorted函数的小练习及解答
2019/09/18 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
How TDD works
2012/09/30 面试题
若干个Java基础面试题
2015/05/19 面试题
计算机专业推荐信范文
2013/11/27 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
党员的自我评价范文
2014/01/02 职场文书
参观接待方案
2014/03/17 职场文书
离婚协议书标准格式
2014/10/04 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
培训班通知
2015/04/25 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP