禁用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 相关文章推荐
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
深入分析Javascript事件代理
Jan 30 Javascript
基于jquery实现动态竖向柱状条特效
Feb 12 Javascript
JS判断iframe是否加载完成的方法
Aug 03 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
详解Ant Design of React的安装和使用方法
Dec 27 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
May 12 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
Sep 27 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
Dec 27 Javascript
JS定时器如何实现提交成功提示功能
Jun 12 Javascript
Ajax实现页面无刷新留言效果
Mar 24 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
德劲1104的电路分析与改良
2021/03/01 无线电
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
php微信公众号开发模式详解
2016/11/28 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
原生JS实现N级菜单的代码
2017/05/21 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
商务司机岗位职责
2015/04/10 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript