Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу Информационная безопасность
  • Почему нельзя использовать mysql_*() и подобные?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Использовать можно. Но не рекомендуется.

    Причин две:
    1. из коробки эти функции не поддерживают плейсхолдеры. по этой причине большинство пользователей шарашат свои переменные напрямую в запрос и имеют через это неприличную болезнь. Если допилить собственную реализацию плейсхолдеров, то пользоваться можно.
    2. чувакам из Оракла впадлу поддерживать две библиотеки, и от одной тупо отказались. Поэтому сейчас при попытке обратиться к такой функции выдает ошибку, в 7 версии расширение будет удалено из дефолтной сборки, но будет поддерживаться сообществом. Если сейчас давить ошибки уровня E_DEPRECATED, а в будущем собирать руками (как и любой другой модуль) то пользоваться можно.


    Что использовать вместо них, в порядке убывания предпочтительности:
    1. ORM и QueryBuilder от используемого фреймворка, например laravel.com/docs/4.2/eloquent
    2. Нормальный враппер с поддержкой плейсхолдеров, такой как phpfaq.ru/safemysql
    3. Если уж совсем никак не отказаться от привычки работать напрямую с функциями API - то PDO, phpfaq.ru/pdo
    Ответ написан
    5 комментариев
  • Как запретить доступ к папке которая выше?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если я правильно понял задачу, то "уязвимую программу" кладем куда-нибудь в виртуалку, которую, не жалко, со своим веб-сервером, и транслируем запросы к ней курлом.

    Но ответ очень приблизительный, поскольку кого от кого защищать надо, из вопроса совершенно неясно. Чувствуется, что и автор, и отвечатели с трудом отличают посетителя веб-сайта от учетной записи на сервере, под которой запускается веб-сервер.
    Ответ написан
  • Как заполнить форму на другом URL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    нужен подобный «тестер»

    Не нужен. Это бессмысленная проверка.
    Без всякого теста и так очевидно, что бот зарегистрируется.
    Ответ написан
    Комментировать
  • Могут ли возникнуть дубли хешей?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Решение отвратительное. Это уже что-то из серии про архиватор Бабушкина.

    Ну разумеется, коллизии будут.

    Лучше оставить MD5 (у которого вероятность коллизий вполне в пределех допустимого), но перевести его из неэффективного base16 в более короткую форму. Base64 вполне подойдёт, поскольку кодировщик есть в пхп из коробки. Вот только оба не буквенно-цифровых символа там не подходят для передачи через урл - лучше их заменить:
    $base64 =  substr(strtr(base64_encode(hex2bin($md5)),'+/',"_-"),0,-2);

    Итого экономим 10 символов из 32-х. Конечно, 22 хуже чем 8, но тут надо выбирать - или достаточная длина, или коллизии и отсутствие безопасности вообще.
    Ответ написан
    Комментировать
  • Безопасно ли открывать схему проверки входных данных сайта?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как и большинство хомячков, афтор путает валидацию данных и форматирование вывода.

    Как правильно отмечено постом выше, эти две вещи никак друг с другом не связаны. Вообще. Разве только тем, что если полагаться на валидацию входящих, то можно налететь на инъекцию второго порядка, точно так же, как в случае с SQL.

    Поэтому валидацию надо оставить как есть, а форматирование производить в обязательном порядке в автоматическом режиме, средствами шаблонизатора. При этом учитывая среду, в которую данные выводятся. Для SQL, HTML, JS и многих других разных вариантов вывода форматирование должно быть РАЗНЫМ
    Ответ написан
    2 комментария
  • Где найти грамотный код для хеширования/проверки на, скажем, PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Грамотный код есть в мануале:
    $hash = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

    и сохраняем в базу. потом, при проверке
    if (password_verify ("rasmuslerdorf", $hash)) echo "OK";
    Если версия РНР на хосте пока не доросла до 5.5, то есть имплементация на пхп - тупо заинклюдить, и всё.
    Ответ написан
    Комментировать
  • Какие статьи читать о применении sql inj в контексте php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Что вопрос, что ответы - ад.
    Ресурс движется в правильном направлении.
    Ответ написан
    Комментировать