Программы
Музыка
Игры
Заработок и Раскрутка
GPS навигация
» » Защита папок скрипта от запуска сторонних скриптов
Информация к новости
  • Просмотров: 1 767
  • Автор: hazardcd
  • Дата: 12-05-2014, 13:05
  • Не нравится
  • +1
  • Нравится
12-05-2014, 13:05

Защита папок скрипта от запуска сторонних скриптов

Категория: DataLife Engine / Статьи

Как известно наибольшую угрозу для сайта представляют собой залитые злоумышленником на сервер PHP шеллы. Что это такое? Это PHP скрипты которые могут выполняться на вашем сервере, соответственно производить какие-либо изменения в файлах доступных для записи или могут, например читать содержимое конфигурационных данных и соответственно получать прямой доступ к базе данных. Каким образом могут попадать данные шеллы на ваш сервер? При обнаружении какой либо уязвимости в скрипте, или сторонних модулях, или вообще при наличии других уязвимых сторонних скриптов на сервере, или серверного ПО. Главная особенность заключается в том, что шеллы можно залить не в любые папки на сервере, а лишь в папки доступные для записи на сервере, и в DataLife Engine такими папками являются папки /uploads/ и /templates/, а также все вложенные в них папки. Данные папки должны иметь права на запись, т.к. вы в них заливаете посредством скрипта легальный контент, файлы, картинки, редактируете в админпанели шаблоны и прочее. И как правило в эти папки производится загрузка шеллов при обнаружении злоумышленником какой либо бреши на сервере в любом скрипте, даже не имеющем отношения к DataLife Engine. Можно ли защитить эти папки, в случае попадания в них зловредного PHP файла, ведь нельзя запретить доступ к этим папкам? Можно, и достаточно не сложно.

Итак, вам необходимо разместить в папках /uploads/ и /templates/ файл .htaccess со следующим содержимым:

 php_flag engine off


Данная строчка отключает использование PHP интерпретатора при попытке обращения к PHP файлам находящимся в этих папках, а также находящимся во всех вложенных папках. Поэтому даже в случае заливки в эти папки файлов со зловредным PHP кодом, они становятся для злоумышленника совершенно бесполезными, т.к. попросту не будут запускаться и выполнятся сервером.

К сожалению далеко не все хостинг провайдеры позволяют управлять через .htaccess данным параметром, но для таких сайтов решение также существует, поэтому если на вашем сервере не работает вышеуказанный способ, то разместите в этих же папках .htaccess с содержимым:

 <FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?.*">
Order allow,deny
Deny from all
</FilesMatch>


Данный код запрещает прямое обращение к PHP файлам, находящимся в этих папках.

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

Ну и для подстраховки можно сделать так.
Открыть: engine/inc/files.php и найти там:

 $allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
$allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v" );
$allowed_files = explode( ',', strtolower( $config['files_type'] ) );
$img_result_th = "";
$img_result = "";


Заменяем на:

 $allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
$allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v" );
$allow_conf = str_replace("php",md5(time() - rand(30,60)),strtolower( $config['files_type'] ));
$allowed_files = explode( ',', $allow_conf );
$img_result_th = "";
$img_result = "";


После этого вы очень сильно усложните заливку шелла на сайт, и сможете наконец спать спокойно!

 

автор MadMan

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
HTML-cсылка:
BB-cсылка:
Прямая ссылка:

Добавление комментария

Имя:*
E-Mail:
Комментарий:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Подтвердите что вы не робот: *