禁用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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
utf8的编码算法 转载
Dec 27 Javascript
HTML中事件触发列表与解说
Jul 09 Javascript
document.documentElement && document.documentElement.scrollTop
Dec 01 Javascript
jquery实现的一个简单进度条效果实例
May 12 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
AngularJS Select(选择框)使用详解
Jan 18 Javascript
完美实现js选项卡切换效果(二)
Mar 08 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
Feb 26 Javascript
基于JavaScript实现一个简单的Vue
Sep 26 Javascript
详解js实时获取并显示当前时间的方法
May 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
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
分享PHP header函数使用教程
2013/09/05 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php单例模式示例分享
2015/02/12 PHP
浅谈PHP表单提交(POST&GET&URL编/解码)
2017/04/03 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
JS event使用方法详解
2008/04/28 Javascript
js 动态选中下拉框
2009/11/26 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
python中sleep函数用法实例分析
2015/04/29 Python
在Django的session中使用User对象的方法
2015/07/23 Python
python 基础教程之Map使用方法
2017/01/17 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python命令行click参数用法解析
2019/12/19 Python
python实现udp传输图片功能
2020/03/20 Python
在python中修改.properties文件的操作
2020/04/08 Python
jupyter实现重新加载模块
2020/04/16 Python
python主要用于哪些方向
2020/07/05 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
美国著名手表网站:Timepiece
2017/11/15 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
上班打牌检讨书
2014/02/07 职场文书
小班下学期评语
2014/05/04 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书