[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обезвреживание фото
Страницы: 1, 2
Reh
Неоднократно читал что все загруженные пользователем фото необходимо копировать на созланные скриптом, а юзерские удалять. А какие проблемы можно получить если этого не делать? Чем грозит? Просто попалось пара загрузчиков фото и не один этого не делает.
sergeiss
Абисняю.... Я даже тут как-то выкладывал такое фото smile.gif Это когда к картинке, например в формате JPG, приделывается скрипт на JavaScript.

Если ты правильно используешь фото, то никаких проблем. Но если удастся эту картинку прописать в тэг <script>, т.е. загрузить её как скрипт, то она выполнится как JavaScript. Начало, где данные от картинки, будет проигнорировано, а вот "хвост" будет выполнен. И можно украсть, например, куки с этого сайта. Что может привести, например, к возможности залогиниться вместо тебя с другого компа.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Another Reality
Могу своим загрузчиком поделиться если надо. Он фильтрует. К тому же гибок в настройке.
Another Reality
Цитата (sergeiss @ 3.01.2017 - 21:13)
Абисняю.... Я даже тут как-то выкладывал такое фото smile.gif Это когда к картинке, например в формате JPG, приделывается скрипт на JavaScript.

Нет желания написать небольшую статейку по этому поводу ? С пояснением, с примером такого изображения и закрепить где-то, может в разделе "PHP для начинающих".
Zzepish
Another Reality
Плюсую. Это не только начинающим будет полезно. Например я не знал про такую уязвимость
sergeiss
Цитата (Another Reality @ 3.01.2017 - 21:41)
Нет желания написать небольшую статейку по этому поводу ?

Да можно и написать, наверное... Сделаю в ближайшее время.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Reh
Another Reality
Спасибо за предложение smile.gif , но я уже класс написал для создания фото.

sergeiss
Я вот только всеравно не пойму sad.gif
Ведь это изображение в любом случае попадет на мой сервер и пролежит там какое то время, пока я его пересоздам и грохну. За этот промежуток как вреда избежать?
Another Reality
Цитата (Reh @ 3.01.2017 - 22:39)
Ведь это изображение в любом случае попадет на мой сервер и пролежит там какое то время, пока я его пересоздам и грохну. За этот промежуток как вреда избежать?

Это нужно делать в процессе загрузки изображения, + пускать в пользование только после обработки.
sergeiss
Вот нашел старую тему на форуме http://phpforum.su/index.php?showtopic=81624, на эту же тему, сейчас прикрепил. Там даже была моя картинка приложена, только не открывается. Я её нашел у себя на компе, сейчас повторно выложу в ту же тему.

Не-не, там нормальная такая картинка! Её достаточно скачать и поработать, как сказано. Называется butt2.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
chee
Цитата (sergeiss @ 3.01.2017 - 21:13)
Это когда к картинке, например в формате JPG, приделывается скрипт на JavaScript.

Помоему бред, таким образом любая картинка в интернете может быть опасной и уводить твои куки. Это точно атака на клиента и проводится она с помощью браузера и js?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Reh
sergeiss
Почитал, в шаблоне ничего подключить не дал шаблонизатор, все сразу закомментилось, только изображение вывелось. А если инклюдить прямо в пхп то окошко выскочило))
sergeiss
Цитата (chee @ 3.01.2017 - 23:04)
Помоему бред, таким образом любая картинка в интернете может быть опасной и уводить твои куки.

Да, любая. Но при условии, которое было озвучено четко: это произойдет в случае, если картинка подключена неправильно, т.е. как скрипт. Если же её разместить, например, в тэге img, то джаваскриптовая часть будет сидеть молча.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (Reh @ 3.01.2017 - 20:24)
А какие проблемы можно получить если этого не делать?

никаких, если нет сопутствующих уязвимостей. Внедрённый php код может быть запущен только при наличии LFI уязвимости, естественно если контролируется расширение создаваемого файла.
Цитата (Reh @ 3.01.2017 - 22:39)
sergeiss
Я вот только всеравно не пойму 
Ведь это изображение в любом случае попадет на мой сервер и пролежит там какое то время, пока я его пересоздам и грохну. За этот промежуток как вреда избежать?

на этапе загрузки файл находится в tmp недоступной из веб.
Цитата (sergeiss @ 3.01.2017 - 21:13)
Но если удастся эту картинку прописать в тэг <script>, т.е. загрузить её как скрипт, то она выполнится как JavaScript.

с трудом представляю себе такую ситуацию, для этого как минимум пользовательские данные должны участвовать в формировании урл скрипта, или не надлежащий вывод пользовательских данных, когда он может подставить тег <script>, но в этом случае в картинке нет никакой необходимости.
Насчёт реальных XSS через картинку, мне известна только дыра в IE6 (позже закрытая патчами обновлений). Уязвимость заключалась в том, что если заставить пользователя открыть такую картинку, то не сумев открыть повреждённое изображение, ишак игнорировал заголовок Content-Type, и начинал обрабатывать её как text/html, со всеми вытекающими последствиями.
chee
Цитата (sergeiss @ 3.01.2017 - 23:12)
Но при условии, которое было озвучено четко: это произойдет в случае, если картинка подключена неправильно, т.е. как скрипт. Если же её разместить, например, в тэге img, то джаваскриптовая часть будет сидеть молча.

пф, так не интересно. Тогда смысла в этих всех защитах нет, просто ложить файл в хранилища без php и делов-то. Например что типа https://tech.yandex.ru/elliptics/ ну или nginx с определенной папкой, ну и конечно же подключать картинки как картинки.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (chee @ 4.01.2017 - 00:51)
пф, так не интересно .... ну и конечно же подключать картинки как картинки.

Но если ты знаешь об описанной возможности, то ты ж заранее сделаешь так, чтобы обойти эту проблему. Верно?
Опять же, сможешь помочь кому-нибудь, кто не знает о наличии такой проблемы.


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.