• После обновления chrome стал перенаправлять домены apache на https протокол?

    kumaxim
    @kumaxim
    Web-программист
    Столкнулся к этой же проблемой, после того как с утра набрал apt update && apt -y full-upgrade

    Мое девелоперское окружение развернуло на Docker-контейнерах, т.е. в одном у меня работает MySQL, во втором nginx, в третьем php-fpm. Для доступа из хостовой ОС к контейнеру я использовал домен host.dev. После обновления Google Chrome до версии 63.0.3239.84 (Official Build) (64-bit), дата 07-12-2017 мой девелоперский домен перестал работать, причем только в Хроме. В Firefox все ОК

    Начал копать. Первое на что наткнулся это пост на Stackoverflow Google Chrome redirecting localhost to https. Ответ от BigJump, отмеченный решением не наш случай, однако, меня зацепила его заметка про HSTS, поэтому на всякий случай в свой конфиг nginx я добавил следующее:

    server {
        add_header Strict-Transport-Security "max-age=0;";
        ...........
    }


    Листаю немного ниже, этот же самый вопрос и вижу замечательный ответ от rafawhs. Оказывается, зона .devявляется новым gTLD доменом, который теперь принадлежит Google. Вот это и является корнем. Google Chrome - браузер от гугла, в который они добавили ограничение ERR_ICANN_NAME_COLLISION, из-за которого никакой домен имеющий зону .dev с моего локального сервера теперь работать не будет. Остальные браузеры, в частности FireFox пока, по всей видимости, еще не подтянулось, впрочем, я думаю, что это только вопрос времени.

    На момент написания этой статьи эта проблема встречается только в Google Chrome с версии 63.0.3239.84. У меня на нетбуке стоял Chrome 61 версии, там ограничение ERR_ICANN_NAME_COLLISION на домены .dev с локального сервера отсутствует.

    Проблему я решил просто, открыв /etc/hosts и изменил host.dev на host.ld, который в данный момент gTLD зоной не является. Поправил доменное имя в настройках приложения и теперь у меня снова все работает.
    Ответ написан
    2 комментария
  • Как посмотреть все глобальные переменные в js?

    Создайте новый Window и сравните свойства:
    document.body.insertAdjacentHTML('beforeend', '<iframe hidden />');
    var originalWin = window.frames[window.frames.length - 1],
        originalKeys = Object.keys(originalWin);
    
    var globals = Object.keys(window).filter(x => originalKeys.indexOf(x) === -1);
    Ответ написан
    3 комментария