Чтобы не создавать тему запощу здесь, проблема та же самая, но не про MySQL.
кратко:
Если существует форма аплоада то, как известно, плохо продуманная обработка выгруженных пользователем файлов подвергает опасности сайт. Могут выгрузить файлы с вредоносным кодом.
Хорошее ли решение для безопасности -- выгруженные файлы в папке upload сжимать в zip и давать своё имя + добавить рэндомный набор символов в конце (5 знаков допустим)
http://22[dot]p[dot]ht/1/page48[dot]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 в ней
CODE ( text):
скопировать код в буфер обмена
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, чтобы злоумышленник не мог или труднее было взломать сайт например исполнив загруженные файлы с внедрённым кодом.
Проверка на клиентской стороне конечно ничего не даёт её легко обойти. Она только для удобства клиентов.
|