禁用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拖拽排序效果实现代码
Sep 20 Javascript
关于javascript中的typeof和instanceof介绍
Dec 04 Javascript
jquery struts 验证唯一标识(公用方法)
Mar 27 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
js简单判断移动端系统的方法
Feb 25 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
Aug 29 Javascript
Javascript下拉刷新的简单实现
Feb 14 Javascript
关于vuex的学习实践笔记
Apr 05 Javascript
vue实现登陆登出的实现示例
Sep 15 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 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生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
php中filter_input函数用法分析
2014/11/15 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
python正则中最短匹配实现代码
2018/01/16 Python
我就是这样学习Python中的列表
2019/06/02 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
通过Python把学姐照片做成拼图游戏
2022/02/15 Python