Местоположение
Украина

Достижения

Все достижения (8)

Наибольший вклад в теги

Все теги (58)

Лучшие ответы пользователя

Все ответы (94)
  • Нужно ли защищать обработчик формы (PHP файл) от прямого доступа?

    Ninazu
    @Ninazu
    1. Создай единую точку входа, и оставь ее в корне сайта, остальные файлы вынеси за пределы (Это не только сделает твое приложении более гибким, понятным, и структурированным, но и в случае отваливания веб сервера, такое когда-то у меня было, после кривого обновлении до php7, исходный код показывался браузером)
    2. Не забудь про SQL иньекции. Никакой конкатенации или вставок PHP. Только плейсхолдеры и байндинг
    3. Если есть возможность загружать файлы, нужно исключить возможность исполнения в этой папке.
    Ответ написан
  • Почему PhpStorm требует установки расширения для curl и json?

    Ninazu
    @Ninazu
    Расширение - это дополнительные модули в PHP, они реализуют конкретно в вашем случае работу с CURL и JSON.
    Узнать подключенные модули
    https://www.php.net/manual/ru/function.extension-l...
    Список всех модулей
    https://www.php.net/manual/ru/extensions.alphabeti...

    Если на вашем сервере они установленны, то не факт что они будут установленны и на другом сервере. Поэтому PHPStorm рекоммендует добавить их в правила композера, чтоб в случае разворачивания на другом сервере, композер сообщил вам что расширения отсутсвуют

    Если бесит инспектор, то можете отключить это уведомление.
    5d4061ba05631701466003.png
    Ответ написан
  • Какой алгоритм предпочитаете для проверки целостности данных/файлов?

    Ninazu
    @Ninazu
    То что вы понимаете под
    можно "сломать" файл и хэш при этом не изменится

    Называется коллизией. Обычно такие атаки имеют крайне жесткие требования. Например оба файла должны быть сугубо указанного размера. Часть файла должна совпадать. И т.д. И это ускоряет перебор в какое-то количество раз. Но не значит что дает возможность модифицировать как угодно один файл, и подогнать результат к значению хеша.
    Если бы это было так. То всякие интернет казино, с преждевременными результатами и контролем честности, а также блоки биткоина. Сделал бы очень богатыми людей которые способны подбирать коллизии такие)
    Ответ написан
  • Как комитить сразу в подмодули Git в PHPStorm?

    Ninazu
    @Ninazu Автор вопроса
    Разобрался.

    При создании дочернего модуля, PHPStorm адекватно все подхватил
    git submodule add git@github.com:ninazu/framework.git ./vendor/ninazu/framework
    git commit -m "#addSubModule"
    git push


    А вот если нужно выкачать репозиторий с подмодулем, то пришлось немного потанцевать.
    cd ./vendor/ninazu/framework
    git submodule update --init --recursive
    git submodule update --recursive --remote


    Дальше переходим к настройкам PHP Storm

    Указать путь к подмодулю
    File -> Settings -> Version Control -> Add -> Directory


    Пофиксить локальную ветку
    VCS -> Git -> Branches -> Repositories -> framework -> LocalBranches -> Checkout


    Ну и обновить проект
    VCS -> UpdateProject
    Ответ написан
  • Какая реализация дерева лучше?

    Ninazu
    @Ninazu
    Все зависит от того зачем вам это дерево.
    1. Это Adjacency List, он хорош когда вам нужно часто писать в дерево и редко его читать.
    2. Это Nested Set, он хорош когда вам нужно часто читать дерево и редко в него писать.

    Для того чтоб построить часть дерева по первому варианту вам нужно либо вытаскивать ВСЕ записи из базы, и потом рекурсивно проходится по ним и строить его, либо писать встроенную процедуру для того чтоб рекурсия была на стороне базы данных. Также нужно следить чтоб не возникало циклических зависимостей в айдишниках

    Второй вариант может вытянуть часть дерева со всеми его дочерними элементами одним запросом, но при изменении структуры запросы могут быть тяжелыми, особенно когда дерево внушительных размеров.

    Лично я использую первый вариант для дерева комментариев, а второй для меню сайта. Хотя деревья всегда есть смысл кэшировать.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (69)