Чтобы не создавать тему запощу здесь, проблема та же самая, но не про картинки.
кратко:
Если существует форма аплоада то, как известно, плохо продуманная обработка выгруженных пользователем файлов подвергает опасности сайт. Могут выгрузить файлы с вредоносным кодом.
Хорошее ли решение для безопасности -- выгруженные файлы в папке upload сжимать в zip и давать своё имя + добавить рэндомный набор символов в конце (5 знаков допустим)
http://22.p.ht/1/page48.html вот страница, ещё буду переделывать.
----------------------------------------------------------
подробно:
Делаю страницу конструктор цены с формой выгрузки файлов. (файлы можно и не выгружать здесь я о варианте если выгрузят)
При нажатии отправить все данные передаются
php скрипту через post
В форме выгрузки имя файла проверяется javascriptом на клиентской части на не валидные символы,
и на разрешённое расширение.
при нажатии субмита делается следующее:
1 формируется pdf в котором записаны результаты выбора
2 принимается выгруженный файл
3 pdf выдаётся юзеру с именем по которому не определить что складывается в upload например
"Zakaz_#01_Vasya_pupkin.pdf" 4 выгруженный файл + pdf отправляются в почту менеджеру магазина
5 и главное выгруженный файл + pdf архивируются вместе (zip или rar) им даётся имя номер
заказа_дата_время_рэндомные символы.zip пример
"00001__09_04_2013__11_02_b3sjk.zip" Вот такие файлы будут в папке upload.
Вопрос.
Такие меры которые я предпринимаю с точки зрения безопасности надёжны, достаточны, правильны, что то ещё можно предпринять?
Ещё думаю правильно добавить в папке upload htacess с директивой отключающей выполнение
php в ней
deny from all
<Files>
order deny,allow
allow from all
</Files>
php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
и урезать права файлу .htacess по минимому 444 или 400
Естественно и самые минимальные для выполнения операций выставить права в папке upload
Я бы вынес на отдельный поддомен файлы, но такой возможности у заказчика нет.
----------------------------------------------------------
Задача всего этого сделать безопасную выгрузку файлов в папку uploads, чтобы злоумышленник не мог или труднее было взломать сайт например исполнив загруженные файлы с внедрённым кодом.
Проверка на клиентской стороне конечно ничего не даёт её легко обойти. Она только для удобства клиентов.