Советы по защите сайта
1) Желательно не создавать конфиги, которые можно прочесть из веба. Конфиг
надо класть выше папки веб-сервера или создавать в таком типе файла, который
нельзя прочесть из браузера (например, *.inc не на всех веб-серверах запускается,
как PHP-скрипт, а просто открывается как текстовый файл). Так что давайте имена
таким файлам с расширением *.php.
2) Никогда не делайте пароль на доступ к SQL-базе таким же, как и на FTP. А
если у вас на хостинге по умолчанию так и сделано (пароли одинаковые), то требуйте
от хостера чтобы он сделал их разными, т.к. если хакер получит веб-шел на сервер
и сможет прочесть конфиг с паролем к SQL-базе = сможет получить FTP-доступ.
3) Шифруйте все пароли доступа к различным закрытым зонам специальными ф-циями,
например md5(). Если хакер сможет получить базу с такими паролями, то расшифровать
их будет проблематично.
4) Следите за обновлениями самой версии PHP (http://www.php.net) и своевременно
обновляйте ее при выходе новой стабильной версии, потому что не только PHP-код
может таить в себе уязвимость, но и сам интерпретатор языка (я думаю все помнят
о PHP 4.0.2-4.0.7 которая позволяла удаленно открыть веб-шел).
5) По возможности давайте не распространенные имена к конфигам с паролями (cfg.php
и т.д., а не config.php или conf.php), т.к. это затруднит поиск конфигов с помощью
поиска по файлам сервера (find / -name conf) хакером.
6) Не пренебрегайте возможностью сделать HTTP-аутификацию средствами PHP, особенно
если нет возможности это сделать на уровне Апача (.htaccess и .htpasswd). Более
подробно о таком виде аутификации и других видах можете прочесть в серии статей
"Авторизация доступа" (http://www.web-hack.ru/books/books.php?go=37).
7) По возможности держите ваш PHP в режиме safe mode (safe_mode=on). Так же
советую вырубить инициализацию глобальных переменных (register_globals=off)
и возможность fonen() открывать адреса из веба (allow_url_fopen=off). Еще можно
запретить опасные ф-ции:
disable_functions=phpinfo,system,passthru
8) Если пишите гостевуху и т.п., то не забывайте ставить фильтрацию во всех
формах (ник, мыло и т.д.) на теги с помощь ф-ции htmlspecialchars(). Кстати,
если в теле сообщений нужно использовать теги, то лучше сделать свои (типа [B][/B]
и т.д.), а не делать фильтры на запрещение не нужных.
9) Шифруйте исходники на PHP и особенно конфиги с помощью Zend Optimizer (http://www.zend.com).
Дата публикации: 02/04/2015 Прочитано: 9603 раз Дополнительно на данную тему:
Защита от hotlinking
Система защиты веб-портала. Часть 1
Система защиты веб-портала. Часть 2
Фильтрация данных в PHP
Методы проверки на правильность заполнения полей
Безопасное программирование на PHP
Что же делать? Как защититься от хаксоров?
Как защитить сайт
Хранение файлов за пределами корневого каталога документов
Безопасность данных
|