27cm
@27cm
TODO: Написать статус

Как авито блокирует консоль разработчика в браузере Chrome?

Полез тут в код Авито через консоль Chrome, и с удивлением обнаружил вот такой код, запускающий что-то вроде бесконечного режима отладки, т. е. реализована защита HTML/JavaScript кода от изучения:
(function(x){
    (function(f){
        (function a(){
            try {
                function b(i) 
                {
                    if ((''+(i/i)).length !== 1 || i % 20 === 0) {
                        (function(){}).constructor('debugger')();
                    } else {
                        debugger;
                    }
                    b(++i);
                }
                b(0);
            } catch(e) {
                f.setTimeout(a, x)
            }
        })()
    })(document.body.appendChild(document.createElement('frame')).contentWindow);
})

59635005326742e7837387f3a5a60001.png

Объясните, пожалуйста, как работает эта "магия" и как её можно обойти?

Статей с описанием этого способа найти не удалось, буду рад, если подкинете.
  • Вопрос задан
  • 6971 просмотр
Решения вопроса 2
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
Можно проще.
Нажмите: deactivate breakpoints
spoiler
c5c4a8ef526b4d75b48d73718b223aaa.jpg
Ответ написан
AlexZaharow
@AlexZaharow
Программист. Javascript, Java!
Есть один вариант. Надо будет поработать немного мышкой и клавиатурой. Сначала поставьте fiddler (он бесплатный). Дальше вот инструкция (откройте в отдельной вкладке картинку, чтобы увеличить масштаб):

3df834aa0be441f8b2067cefbe76172b.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Вот содержимое файла, который это делает: https://gist.github.com/shvchk/69ecde1a5dcb32513814

Сейчас он имеет адрес https://www.avito.st/s/cc/978f54a4a62b76ad3e84bd5c...

Можно просто добавить в Adblock/uBlock/etc простое правило для его блокировки:
https://www.avito.st/s/cc/978f54a4a62b76ad3e84bd5cfad5652d3d907d4e*

(если адрес изменится, содержимое скрипта выложено выше — ищите его среди используемых скриптов).
Ответ написан
dmitriy_novikov
@dmitriy_novikov
Занимаюсь web-разработкой с 2010г. http://dmnv.ru
Попробуйте в firebug - там есть отличная кнопка "отключить" для дебаггера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы