Facebook экспериментирует с блокировкой DevTools в Google Chrome

В социальной сети Facebook очень беспокоятся о тех пользователях, которые открывают консоль DevTools в своем Хроме и вставляют туда код, полученный от разных "доброжелателей". Пользователи при этом думают, что открывают скрытые возможности или "хакают" чужие страницы, но в результате взламывают их самих. Этот метод взлома называется self-XSS. Чтобы пресечь подобные проблемы, разработчики социальной сети отключили DevTools у части пользователей. Хотя многие думали, что это невозможно.

На скриншоте сверху вы можете увидеть сообщение, которое выводится в консоли при попытке что-то там ввести и которое объясняет, почему Facebook блокирует ее использование. За подробностями направляют на специальную страницу, где можно поставить галочку и разблокировать этот инструмент. При этом еще и автозаполнение отключили (хотя и с ним пользы не много):

Всплыло это на stackoverflow.com, куда в результате пришел инженер по безопасности из Facebook и объяснил, что это экспериментальный способ борьбы с self-XSS. А еще он объяснил, как такое вообще возможно. Оказалось, что Google Chrome оборачивает весь консольный код в

with ((console && console._commandLineAPI) || {}) {тут код}

А значит можно переопределить console._commandLineAPI и таким образом блокировать консоль. Вот и весь фокус.