@XenTerSeO

Насколько опасно разрешать пользователям загружать на сервер любые файлы?

Есть сайт на ubuntu. Есть возможность всем зарегистрированным пользователям загружать любой тип файлов. Сайт находится на том же сервере, где и хранятся файлы.
Насколько опасно это может быть и как обезопасить себя от вредоносных файлов?
  • Вопрос задан
  • 756 просмотров
Решения вопроса 4
Ivanq
@Ivanq
Знаю php, js, html, css
Очень опасно - хакер завоюет сервер на 100%. Представим, у вас сайт на PHP. Пользователь может загрузить на сервер скрипт, а потом его выполнить.
Простейший код удалит весь сайт. У себя не запускать!
@unlink($_SERVER["DOCUMENT_ROOT"]);
Ответ написан
magalex
@magalex
Архитектор распределённых систем управления
Вам могут загрузить PHPShell, после чего попрощаетесь со своим сервером :)
Обезопасить можно тем, что запретить исполнение любых файлов в директории, где хранятся загружаемые файлы. А вообще лучше запретить загрузку всех типов файлов, кроме специально разрешённых.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Если грамотно настроить - грузите что нужно.
Всё зависит от настроек сервера и того, что вы будете делать с файлами.
При чем безопасность зависит как от клиентской части, так и от серверной.
Чтобы обезопасить - не выполнять скрипты в папке с загружаемыми файлами (к примеру, отдавать все файлы с помощью Nginx из папки напрямую, минуя PHP интерпретатор). Так же нужно настроить HTTP заголовки на страницах, чтобы нельзя было загрузить файл с JS и потом подключить в iframe на странице (если, к примеру, у пользователя есть возможность вставлять iframe, для того же youtube может быть нужно), иначе получите что-то вроде хранимой XSS, только в файловой системе (хотя, собственно, какая разница где хранить).

В целом - есть целый ряд вариантов выстрелить себе в голову, так что настоятельно рекомендую пока пользоваться готовыми инструментами, где упомянутые и некоторые другие вещи предусмотрены.
Ответ написан
Комментировать
erniesto77
@erniesto77
oop, rb, py, php, js
Чтобы позволить себе такую роскошь нужно будет потратить кучу времени на предотвращение всех возможных угроз. Сейчас все сразу не перечислить. Основная проблема думаю в том, чтобы запретить исполнение файлов. Как вариант каждый файл можно хранить запакованным в архив, тогда исполнить его не удастся, вариантов куча надо сидеть думать...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽