禁⽤JavaScript控制台调试的⽅法
有⼏个巨头公司,即Facebook和Netflix,决定禁⽌⽤户在控制台(console)执⾏JavaScript命令。
最初这是由Facebook开始的 ,⽤于防⽌恶意⽤户通过JavaScript控制台执⾏特定的命令散播消息(发送给所有Facebook⽤户⼤量垃圾信息)。
当然这受到很多指责,但在我参与之前, 他们使⽤的代码如下所⽰:
复制代码代码如下:
// 看起来 Netflix 似乎是唯 Facebook 马⾸是瞻 [binator/item?id=7222129].
(function() {
try {
var $_console$$ = console;
Object.defineProperty(window, "console", {
get: function() {
如何启用javascript功能if ($_console$$._commandLineAPI)
throw "抱歉, 为了⽤户安全, 本⽹站已禁⽤console脚本功能";
return $_console$$
},
set: function($val$$) {
$_console$$ = $val$$
}
})
} catch ($ignore$$) {
}
})();
虽然我⼈微⾔轻,但实际上我认为这种做法是合法的。从他们的⾓度来看,如果暂时禁⽤控制台有助于防⽌⼀个问题,那就不得不这样做。
但从长远来看,这真的不是⼀个好主意;其⽬标可能只是想要屏蔽依赖他们的⽬标⽤户。
⽆论如何,如果你想防⽌控制台执⾏脚本,这段代码看起来效果不错,也的确如此。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论