За последние 24 часа нас посетили 34882 программиста и 1693 робота. Сейчас ищут 654 программиста ...

Все ли меры предосторожности приняты?

Тема в разделе "PHP для новичков", создана пользователем Frai, 1 фев 2017.

  1. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Приветствую! Итак я сделал регистрацию на PHP самописную. Еще данные дополнительно вводятся через профиль пользователя. Интересует, со всех сторон ли я защитил сайт от предполагаемого взлома и доступа к данным, если.
    1) Запросы к БД обрабатываются mysqli_real_escape_string (php7)
    2) Сайт расположен на платном хостинге, сервер не свой
    3) Входящие $_COOKIES проверяются на всякий случай на наличие спецсимволов
    4) Пароли сложные к БД и админке
    5) Авторизация с капчей
    6) Папки с кодом include в файлах скрыты из .htaccess
    7) Запрещен просмотр каталогов папок без индексного файла
    8) Отключен вывод ошибок БД и PHP (Просто чистая страница)
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    9) В куках надо выставить флаг HTTP-only
    10) Кодировка соединения с БД, кодировка сайта и кодировка содержимого базы должны быть идентичны. Кодировка базы должа указываться явно.
    PHP:
    1. mysqli_set_charset($connect, $charset);
    11) У базы данных должен быть закрыт доступ отовсюду кроме 127.0.01
    12) Пользователь, от имени которого с БД работает твой скрипт, должен иметь только те права, которые непосредственно нужны для работы. К примеру, права на создание новых пользователей БД ему явно совершенно ни к чему. Для PMA можно завести отдельного пользователя.
     
    #2 Fell-x27, 1 фев 2017
    Последнее редактирование: 1 фев 2017
  3. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    10 - есть, насчет 9 - спасибо, не знал о такой возможности, но у меня собственные JS проверяют наличие куки у пользователя и иногда с ними взаимодействуют, должно быть это и им доступ закроется к кукам. Я так понимаю, что это защита от ХSS? В целом на моем сайте каждому пользователю отображаются только его данные, только в одном месте виден список отличившихся юзеров, но вывод в рейтинг проверяется на наличие спецсимволов (по регулярке все кроме букв и цифр отрезается, такие логины). Если есть возможность как-то HTTP-only использовать и свои скрипты чтобы работали - я только за , так как сайт возможно будет расширятся и впоследствии за всем не уследить.
    11 - у меня выделенный хостинг там это по умолчанию
    12 - недостаток выделенного хостинга (по крайней мере этого) в том, что пользователь дается только один, со всеми правами. В остальном он меня более чем устраивает.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет, это защита от кражи кук, если XSS случится.
    Не надо никаких регулярок. Не надо ничего резать. Это порча данных. Просто все, что выводится на экран, и где не должны работать HTML и JS, надо оборачивать в htmlspecialchars
    Нет, это перекроет доступ скриптов ко всем кукам. Закрывай через http-only только критически важные куки.
    --- Добавлено ---
    Вот, изучай - https://php.net/manual/ru/function.session-set-cookie-params
     
  5. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Отлично, буду указывать http-only только для важных куки. С остальным совесть спокойна.