Главная страница / Советы / Защита папок скрипта от запуска сторонних скриптов
октябрь 23 2010

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

celsoft 23 октября 2010 Советы 50 930
Дорогие друзья,

в этой небольшой статье мы хотим рассказать вам о том как, как вам можно повысить безопасность вашего сайта. Как известно наибольшую угрозу для сайта представляют собой залитые злоумышленником на сервер 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 файлам, находящимся в этих папках.

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

Комментарии

  1. celsoft (Администраторы)

    15 ноября 2010 08:59 3 660 комментариев
    Testing,
    Это вам нужно спрашивать у вашего хостинг провайдера, значит он вам не дает управлять настройками сервера черех .htaccess
  2. gogay (Посетители)

    18 ноября 2010 12:04 12 комментариев
    Вчера как раз последствия удалял с двух сайтов на одном хосте - они мне загрузили php в папку fotos, а потом видимо через этот файл изменили мне data/dbconfig что перестал работать rss и я лишь поэтому полез проверять в чем дело и обнаружил, а потом выяснилось что у них еще какой-то файл залит левый modules/mysql.php и еще какой-то. Вообщем, они под паролем базы ломились мне на ftp вчера же, благо пароли разные и ничего у них не вышло.

    Странно что раньше дырку эту не закрыли. Но у меня на тех сайтах вообще древненькая версия стоит - 6.7 и 7.2.
  3. celsoft (Администраторы)

    18 ноября 2010 13:07 3 660 комментариев
    gogay,
    Это никакая не "дырка", а дополнительная защита, ее наличие или отсутствие не может повредить сайту, а для старых версий нужно вовремя ставить вышедшие патчи безопасности https://dle-news.ru/bags/
  4. HellWalk (Клиенты)

    24 ноября 2010 17:11 1 комментарий
    Спасибо!
  5. Shader (Посетители)

    25 ноября 2010 14:13 3 комментария
    Цитата: film4ik
    Свой сервер. CentOS 5.5. Искал в инете что ничего не нашел как разрешить данное правило. Может кто в курсе?

    film4ik, в конфигурации апача (httpd.conf, как правило) укажите
    <Directory "/path/to/webroot">
    AllowOverride All
    </Directory>
    /path/to/webroot заменить на путь к корневой папке сайта или найти в конфигурации, где он уже описывается.
  6. DjLucefer (Посетители)

    3 декабря 2010 12:11 1 комментарий
    У меня в 2 вариантах выдает 404 ошибку - "К сожалению, данная страница для Вас не доступна: возможно, был изменен ее адрес или она была удалена..", это обозначает что метод работает или должно отдавать php файл?
    P.S. главный файл .htaccess в корне сайта с 301 редиректом работает
  7. Georg (Клиенты)

    25 декабря 2010 18:45 4 комментария
    А если у меня сервер nginx?
  8. alexpsy03 (Посетители)

    4 января 2011 04:09 2 комментария
    Спасибо!
  9. Simur (Посетители)

    1 февраля 2011 08:38 48 комментариев
    Скажите пожалуйста, что должно писатся в обох вариантах если работает или не работает защита?
  10. advanyrg (Клиенты)

    2 февраля 2011 08:17 2 комментария
    Напишите плиз правильные права для папок и файлов.
    что запретить, а что разрешить
  11. celsoft (Администраторы)

    2 февраля 2011 11:37 3 660 комментариев
    Цитата: Simur
    Скажите пожалуйста, что должно писатся в обох вариантах если работает или не работает защита?

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

    Цитата: advanyrg
    Напишите плиз правильные права для папок и файлов.
    что запретить, а что разрешить

    Какие должны быть права написано в инструкции по установке скрипта. Все остальные права на другие файлы и папки должны оставаться теми, которые были назначены хостинг провайдером автоматически при их копировании на сервер.
  12. advanyrg (Клиенты)

    6 февраля 2011 13:10 2 комментария
    Цитата: celsoft
    Какие должны быть права написано в инструкции по установке скрипта. Все остальные права на другие файлы и папки должны оставаться теми, которые были назначены хостинг провайдером автоматически при их копировании на сервер.


    Спасибо!

    Я подумал, что некоторые из них расшарены только для установки и в дальнейшем не нужно таких прав.
  13. LADYX (Посетители)

    7 февраля 2011 16:39 67 комментариев
    Скажите, пожалуйста, а на DLE 9.2 нужно ставить эту защиту?
    Благодарю за ответ.
  14. celsoft (Администраторы)

    7 февраля 2011 16:46 3 660 комментариев
    Цитата: LADYX
    Скажите, пожалуйста, а на DLE 9.2 нужно ставить эту защиту?
    Благодарю за ответ.

    там уже это прописано.
  15. 6748222 (Клиенты)

    20 февраля 2011 19:48 12 комментариев
    Sposibo! love
  16. veb veb vel (Посетители)

    12 марта 2011 10:41 8 комментариев
    В 9,0 похоже он не включен.
    Загрузил пхп файл в папку uploads/ и запустил
  17. volfernion (Клиенты)

    27 сентября 2011 06:37 4 комментария
    celsoft,
    Вошло уже в дистрибутив?
  18. masterroma (Посетители)

    9 февраля 2013 00:25 7 комментариев
    У меня был случай, когда ежедневно меняли на сайте файл .htaccess Делалось это так. Скачивался он, затем меняли все содержимое, затем удалялся настоящий, а потом закачивали вновь и уля-ля-ля делали все, что хотели. Так ничего и не смогли сделать и никакие выставленные права не помогли.

    Был закачен шелл и творили все что хотели, не знаю каким образом, но кровушки попили вволю.
  19. bekcil (Клиенты)

    18 августа 2015 10:36 1 комментарий
    С недавнего времени мой DLE не видит файл htaccess в папке uploads.
    Вот такое сообщение висит в админ панели.

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

    Оригинальный файл я уже закидывал и сравнивал в текстовом редакторе. По факту ое там есть.
    Что посоветуете добрые люди.
  20. celsoft (Администраторы)

    18 августа 2015 10:58 3 660 комментариев
    bekcil,
    Вам ответили на E-Mail на данный вопрос. Нужно визуально смотреть в чем причина вашей проблемы, для этого у вас были запрошены соответствующие доступы.
  21. SusaPusa (Посетители)

    2 октября 2016 20:05 1 комментарий
    Georg,
    Nginx
    # Безопасность - запрет выполнения PHP файлов в папках доступных для записи.
    location ~ "/uploads/.*\.php$|/backup/.*\.php$|/templates/.*\.php$|/upgrade/.*\.php$|/language/.*\.php$|/images/.*\.php
    $"
    {
    return 403;
    }

    location ~* (uploads|uploads/fotos|templates|language)/.+\.php {
    deny all;
    }

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Декабрь 2021    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031 

Опрос на сайте

Совершаете ли вы покупки в интернет?