• Cross domain referer leakage, какие варианты есть для предотвращения?

    zxscv
    @zxscv
    К примеру у вас на сайте есть авто авторизация при переходе из письма. Типа
    http://domain.com/?email=vasya@pupkin.com&secrettoken=vfwervwervwervwervwerv244234


    При переходе пользователь перейдет на страницу и если его там оставить то он может кликнуть на внешнюю ссылку на сайте и перейти на другой сайт, а в реферере этого запроса будет
    http://domain.com/?email=vasya@pupkin.com&secrettoken=vfwervwervwervwervwerv244234


    Чтобы исключить уязвимость надо средиректить с
    http://domain.com/?email=vasya@pupkin.com&secrettoken=vfwervwervwervwervwerv244234
    после авторизации

    Ну еще https избавляет от этой проблемы
    Ответ написан
    Комментировать
  • Как пофиксить зависание инсталлятора в ubuntu?

    twix007
    @twix007
    мой набор из записника, мне помогает в таких ситуациях.

    Удалите кеш пакетов: sudo apt-get clean
    Удалите осиротевшие пакеты: sudo apt-get autoremove
    Обновите список пакетов: sudo apt-get update
    Исправьте зависимости: sudo apt-get -f install
    Если установка была прервана, то следует переустановить пакет sudo apt-get install --reinstall имя_пакета
    Попытайтесь выполнить 'apt-get -f install', не указывая имени пакета, (или найдите другое решение).
    Ответ написан
    Комментировать
  • Возможно ли постепенная миграция самописного php-движка на популяный веб-фреймворк?

    @Fantyk
    web developer
    Да, все возможно. Большинство компаний, начинавших в 2012 годах и доживших до 2018 этим и занимаются - переводят свои проекты на "современную" архитектуру.
    Сроки зависят от объема кодовой базы и выделяемых ресурсов, а также от адекватности разработчиков "велосипедов" (некоторые "велосипеды" действительно хорошо спроектированы).
    Уверен, на хабре есть много информации на эту тему. Я писал о своем опыте.

    Начинать нужно с общей архитектуры приложения, банальности вроде одной точки входа index.php, автозагрузчика, композера. Дальше нужно определиться со структурой приложения (понимание в какую папку складываем те или иные файлики). Потом уже внедрение DI контейнера (если вдруг нету), оборачивание вызова нового/старого кода каким то прокси (который решит вызываем старый код или уже есть реализация на новом коде).
    Я бы сразу перешел на стандартный логгер. Дальше все зависит от того, что вас не устраивает в текущем приложении. Что болит - то и править первым.
    Ответ написан
    Комментировать
  • Возможно ли в linux-системе(ubuntu) установить php 7.х сразу со всеми доступными расширениями?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    apt-get install php7.2-*

    Какие там постоянно разные пакеты нужны? Штук 5 наверно используется из тех что не из коробки идут.
    Ставится php7.*-common и всякие sql/mbstring/xml/intl
    И этого достаточно для 99% случаев.

    куча времени уходит чтоб понять какой же конкретно модуль им нужен и пляски чтоб его установить

    А читать ошибку не пробовали? Композер прям вот буквами пишет что нужно расширение ext-bcmach или ext-mbstring и т.д. (Типа вот прямо вот так просит ext-mbstring, никаких непонятностей)
    Ответ написан
    Комментировать
  • Можно ли в php создать объект класса, если название класса задано через строку?

    Stalker_RED
    @Stalker_RED
    function getCar($className){
        return new $className();
    }
    демка
    документация
    Ответ написан
    Комментировать
  • Стоит ли для одной задачи делать несколько миграций?

    если они связаны между собой, то , думаю, все нужно в одной миграции
    я всегда делаю так - одна задача - одна миграция
    Ответ написан
    Комментировать
  • Как ограничить подключение по vpn только одим соединением в Linux?

    Jump
    @Jump
    Системный администратор со стажем.
    На компьютере с которого подключаетесь нужно сделать две вещи -
    1)Запретить при подключении VPN менять шлюз по умолчанию - у вас он меняется на шлюз в удаленной сети, и весь трафик летит туда, и там дропается.
    2)Прописать явный маршрут до сервера разработки.

    В итоге - шлюз по умолчанию при подключении VPN у вас не будет меняться и все сервера в интернете будут доступны.
    А доступ до конкретного сервера разработки будет обеспечивать персональный маршрут.
    Ответ написан
    Комментировать