禁用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给页面加style无效果的解决方法
Jan 20 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
Angular2入门--架构总览
Mar 29 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
May 03 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
利用Javascript获取选择文本所在的句子详解
Dec 03 Javascript
Vue 幸运大转盘实现思路详解
May 06 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
vue实现侧边栏导航效果
Oct 21 Javascript
如何在JS文件中获取Vue组件
Sep 16 Javascript
openlayers4.6.5实现距离量测和面积量测
Sep 25 Javascript
vue实现列表拖拽排序的功能
Nov 02 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
thinkphp控制器调度使用示例
2014/02/24 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
js实现小星星游戏
2020/03/23 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
Python实现Restful API的例子
2019/08/31 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
上海世博会口号
2014/06/19 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
工作报告范文
2019/06/20 职场文书
详解Python类和对象内容
2021/06/22 Python
MySQL优化及索引解析
2022/03/17 MySQL
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis