2012-07-02 3 views
3

Я разрабатываю веб-приложение, используя java, где пользователь будет загружать zip-файл. Этот файл будет содержать файлы css, изображения, файлы javascript, флеш-файлы и т. Д. Zip-файл будет загружен в каталог webapp tomcat. Цель заключается в том, что пользователь будет загружать скин в виде zip-файла, и мой сервлет извлечет его в местоположение в webapp.Как защитить загрузку файлов в java

Моя забота заключается в том, как обращаться с безопасностью здесь. Пользователь может написать код атаки xss в файле js или другом файле. Все файлы находятся внутри zip-файла. Я могу проверить расширения или mime-тип zip-файла. Кроме того, какие другие действия я мог предпринять, чтобы предотвратить любую атаку. Любой пример, фрагмент кода будет высоко оценен.

+2

Здесь существует неотъемлемый риск, который трудно смягчить (насколько я считаю) приемлемый уровень риска, когда вы имеете дело с «незащищенными» пользователями, то есть пользователями из большого большого дикого за пределами, а не с теми, кто имеет административные права для размещения любого типа файла на сервере. Здесь так много рисков. –

+0

Итак, вы хотите проверить наличие атак из файла .js и возможных других? но мой первый вопрос заключается в том, почему бы не попробовать использовать антивирусный сканер с возможностями командной строки для сканирования файлов, поэтому вы сканируете каждый файл по мере его загрузки, если сканер вирусов не может быть и речи, возможно, посмотрите на онлайн-сканер VirusTotal.com , однако без надлежащего механизма эвристики новые атаки могут быть написаны и пройдут так же легко –

+1

Вы уверены, что вам нужны они, чтобы иметь возможность загружать javascript и флеш-файлы? Не можете ли вы создать какой-то формат файла конфигурации, который они могут загрузить, и который потребляется вашим собственным кодом, чтобы обеспечить все, что им нужно? – greyfairer

ответ

0

В вашем вопросе не указано, что вы собираетесь делать с загруженным контентом, но если вы хотите запустить его на своем сайте, то ответ заключается в том, что вы действительно не хотите, чтобы люди могли загружать свои собственные JavaScript. Любой внешний код, работающий на вашей стороне, может изменить что-либо и заставить ваш сайт вести себя так, как вы не можете нести ответственность. Просто прочтите the Wikipedia entry on clickjacking, чтобы убедиться.

Очистить весь HTML, удалив script теги, чтобы предотвратить выполнение JavaScript, не разрешать настраиваемый JavaScript и для всех нужд настройки следует рекомендация @greyfairer использования файла конфигурации со скриптовым проверкой.

Также не забудьте указать размер загруженных файлов (см. Документацию на веб-сервер), если вас беспокоит то, что ваши пользователи будут делать на вашем сайте.

Смежные вопросы