Приветствую! Итак я сделал регистрацию на PHP самописную. Еще данные дополнительно вводятся через профиль пользователя. Интересует, со всех сторон ли я защитил сайт от предполагаемого взлома и доступа к данным, если. 1) Запросы к БД обрабатываются mysqli_real_escape_string (php7) 2) Сайт расположен на платном хостинге, сервер не свой 3) Входящие $_COOKIES проверяются на всякий случай на наличие спецсимволов 4) Пароли сложные к БД и админке 5) Авторизация с капчей 6) Папки с кодом include в файлах скрыты из .htaccess 7) Запрещен просмотр каталогов папок без индексного файла 8) Отключен вывод ошибок БД и PHP (Просто чистая страница)
9) В куках надо выставить флаг HTTP-only 10) Кодировка соединения с БД, кодировка сайта и кодировка содержимого базы должны быть идентичны. Кодировка базы должа указываться явно. PHP: mysqli_set_charset($connect, $charset); 11) У базы данных должен быть закрыт доступ отовсюду кроме 127.0.01 12) Пользователь, от имени которого с БД работает твой скрипт, должен иметь только те права, которые непосредственно нужны для работы. К примеру, права на создание новых пользователей БД ему явно совершенно ни к чему. Для PMA можно завести отдельного пользователя.
10 - есть, насчет 9 - спасибо, не знал о такой возможности, но у меня собственные JS проверяют наличие куки у пользователя и иногда с ними взаимодействуют, должно быть это и им доступ закроется к кукам. Я так понимаю, что это защита от ХSS? В целом на моем сайте каждому пользователю отображаются только его данные, только в одном месте виден список отличившихся юзеров, но вывод в рейтинг проверяется на наличие спецсимволов (по регулярке все кроме букв и цифр отрезается, такие логины). Если есть возможность как-то HTTP-only использовать и свои скрипты чтобы работали - я только за , так как сайт возможно будет расширятся и впоследствии за всем не уследить. 11 - у меня выделенный хостинг там это по умолчанию 12 - недостаток выделенного хостинга (по крайней мере этого) в том, что пользователь дается только один, со всеми правами. В остальном он меня более чем устраивает.
Нет, это защита от кражи кук, если XSS случится. Не надо никаких регулярок. Не надо ничего резать. Это порча данных. Просто все, что выводится на экран, и где не должны работать HTML и JS, надо оборачивать в htmlspecialchars Нет, это перекроет доступ скриптов ко всем кукам. Закрывай через http-only только критически важные куки. --- Добавлено --- Вот, изучай - https://php.net/manual/ru/function.session-set-cookie-params