Еще раз о безопасности виртуального хостинга.

Nov 10, 2012 15:54

В очередной раз возник вопрос как обезопасить дешевый виртуальный хостинг. Некоторые прикручивают mod_security в безнадежной попытке предвидеть все опасные запросы. Но есть старый, проверенный способ - раставить правильно права на файлы. Итак у нас один общий nginx и php-fpm (вариант apache mod_php).
nginx отдает статические обьекты - html картинки и почее. Все эти файлы должны принадлежать к одной общей с nginx пруппе например www или www-data или nginx и иметь  следующие права:
rw-r----- или 640 в числовом эквиваленте.

Скрипты php или perl работают с правами пользователя а значит они должны иметь права:
rw------- или 600 для php
rwx------ или 700 для Perl

Обратите внимание что всякие конфиги содержащие пароли к БД и другую конфиденциальную информацию тоже должны лежать с правами:
rw------- или 600 в числовом эквиваленте.
Так как после заливки по FTP права ставятся по умолчанию, после каждой заливки нужно выставлять правильные права на все файлы. Это неудобно, но нужно. Лучше для этого написать скрипт.
Если же все таки нужно скрыть от посторонних и статические файлы - положите их с правами
rw------- или 600 в числовом эквиваленте
и отдавайте их скриптами, при этом кешируя в nginx. Потеря производительности в таком случае будет минимальной.
Другой пользователь при всем желании не сможет их отдать ни скриптами ни nginx, так как эти файлы не состоят в одной группе с nginx. И даже симлинки на эти файлы не помогут.

php perl chmod apache php-fpm hosting

Previous post Next post
Up