Facebook과 Netflix와 같은 몇몇 거대 회사는 사용자가 콘솔에서 JavaScript 명령을 실행하는 것을 금지하기로 결정했습니다.
원래 이는 JavaScript 콘솔을 통해 특정 명령을 실행하여 악의적인 사용자가 메시지를 유포하는 것을 방지하기 위해 Facebook에서 시작되었습니다(모든 Facebook 사용자에게 대량의 스팸 보내기).
물론 이것은 많은 비난을 불러일으키지만, 제가 참여하기 전에 그들이 사용했던 코드는 다음과 같았습니다:
// Facebook의 뒤를 잇는 유일한 업체인 것 같습니다[https://news.ycombinator.com/item?id=7222129]. >
(function() {
try {
var $_console$$ = console;
Object.defineProperty(window, "console", {
get: function() {
if ($_console$$._commandLineAPI )
throw "죄송합니다. 사용자 안전을 위해 이 웹사이트에서는 콘솔 스크립트 기능이 비활성화되었습니다."
return $_console$$
},
set : function($val$$) {
$_console$$ = $val$$
}
})
} catch ($ignore$$) {
}
} )();
저는 말투가 부드러운 편이지만 실제로는 이런 행위가 합법적이라고 생각합니다. 그들의 관점에서는 콘솔을 일시적으로 비활성화하는 것이 문제를 방지하는 데 도움이 된다면 이를 수행해야 합니다.
그러나 장기적으로 볼 때 이는 실제로 좋은 생각이 아니며 단지 이에 의존하는 대상 사용자를 차단하는 것이 목표일 수도 있습니다.
어쨌든 콘솔이 스크립트를 실행하는 것을 방지하려면 이 코드가 잘 작동하는 것 같고 실제로 그렇습니다.