Как защититься от взлома при загрузки файлов на сервер?

Статус
В этой теме нельзя размещать новые ответы.
Смысл в том что из картинки будет создана новая
С худшими качественными характеристиками, если, к примеру, речь о jpg?
а если там не картинка а код ПХП например то оно новую создать не сможет и выдаст ошибку и картинка загружена не будет
Нихрена он не выдаст.
Для просмотра ссылки Войди или Зарегистрируйся

Добавлено через 4 минуты
Если тебе будут заливать юзеры картинки то отфильтруй их
Ещё один. getimagesize всего лишь читает сигнатуру, а не занимается мифическими вещами. По вашему код
Код:
GIF89<?php print_r(getimagesize(__FILE__));?>
является валидной картинкой, которую вполне можно include'ть?
Повторяю ещё раз - защита может быть только одна - не исполнять то, что пришло от пользователя.

Добавлено через 5 минут
это от движка зависит, если у двига проблемы с безопасностью - его никакая фильтрация аплоада не спасёт.
О чём и речь. Решать надо источник проблемы, а не искать костыли для якобы её решения. Даже не смотря на то, что это очень модно.
 
include-дить ничего нельзя впринципи для подключения скриптов существует require и require_once для вывода текста есть куча функций для работы с текстом для картинок лучше всего создать тумбу, сэкономить место и удалить оригинальный файл.
 
include-дить ничего нельзя впринципи для подключения скриптов существует require и require_once
которые делают тоже самое что и include() :D
 
include-дить ничего нельзя впринципи
Очень любопытно - почему?
для картинок лучше всего создать тумбу, сэкономить место и удалить оригинальный файл.
Кому нужен сервис, где от картинки остаётся жалкое её подобие? Может лучше сразу удалять картинку?
Не надо уподобляться страусу, зарывающему голову в песок, вместо того, чтобы разобраться раз и навсегда.
 
Добавлено через 4 минуты
Ещё один. getimagesize всего лишь читает сигнатуру, а не занимается мифическими вещами. По вашему код
Код:
GIF89<?php print_r(getimagesize(__FILE__));?>
является валидной картинкой, которую вполне можно include'ть?

Ну-ну...а вторую строчку слабо прокомментировать..если вы сделаете ресайз не картинки то получите ошибку...и причем инклюдить.. что инклюдить и куда инклюдить...? приведите пример ...
сначала картинка или как-бы картинка... загружается во временную папку вот и обработайте ее до основного внесения в реальную папку на сервере..
а причем тут инклюд?
 
По вашему код
Код:
GIF89<?php print_r(getimagesize(__FILE__));?>
является валидной картинкой, которую вполне можно include'ть?

Код:
GIF89a<?php print_r(getimagesize(__FILE__));?>
валидная картинка GIF, которую можно инклюдить
 
если вы сделаете ресайз не картинки то получите ошибку...
Не получу. Пример приведён.
и причем инклюдить.. что инклюдить и куда инклюдить...?
находятся идиоты, делающие, к примеру, include вместо readfile.
сначала картинка или как-бы картинка... загружается во временную папку вот и обработайте ее до основного внесения в реальную папку на сервере..
Обрабатывать ничего не нужно. Вообще. Нужно всего лишь исключить исполнение на сервере того, что пришло от пользователя. Всё остальное - костыли и полумеры.
 
Я в шоке, с рисунками я вообще не понял суть испуга.
При загрузке проверить Mime type рисунка:

PHP:
$image = getimagesize( $imageFile );
if (!in_array($image['mime'],$goodMime) die ('Wrong file!');

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

Если уж у кого то маниакальный испуг, ну тогда проверяйте файлы на вставку JavaScript кода через регулярки (основные функции тырки куков и т.д.), так как PHP код в браузере не интерпретируется. Хотя это тоже бред, не думаю что браузер исполнит ЯваСкрипт в рисунке :)

А вообще проверок на валидность файлов можно напридумать куеву тучу, только имхо - бред.
 
Возникло несколько вопросов.
По 1. Т.е. задаю разрешенные расширения и проверяю по ним ?
2. Если будет deny from all, то как тогда браузер обратится к файлу или отдавать его через скрипт?
3. Про ковычку понятно, а про ноль - ни разу не слышал. можно примерчик.
4. Т.е. на htacess нужно выставлять chmod 664, чтобы его не затерли ? можно ли вообще извне (не скриптом на сервере) что-нибудь затереть или удалить? Сам предполагаю, что нельзя :).
5. В принципе из-за этого вопрос и возник. Сам аплоад нужен для закачки картинок пользователями, а так же для того, чтобы передать админку фрилансеру для заполнения сайта материалами.
p.s. движок полностью самописный.


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

2. Если уж у кого то маниакальный испуг, ну тогда проверяйте файлы на вставку JavaScript кода через регулярки (основные функции тырки куков и т.д.), так как PHP код в браузере не интерпретируется. Хотя это тоже бред, не думаю что браузер исполнит ЯваСкрипт в рисунке :)

А вообще проверок на валидность файлов можно напридумать куеву тучу, только имхо - бред.
1. Можно в htacsess прописать, чтобы gif / jpg / png исполнялся как php. И будет серверу счастье :)
2. Ява скрипт можно легко отключить. Не знаю как ява скрипт, а php код в картинке может выполниться.
 
а может проще сохранять, только в разрешенных экстеншенах? т.е. исключить маймтайпы, которые обрабатываются АПАЧЕМ через внешние скрипты или модули типа php_mod а все остальное разрешить?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху