Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > безопасный вывод картинки из php |
Автор: Chewits 9.10.2009, 22:48 |
Сделать нужно так - php-файлу через get-запрос передается относительный путь до картинки, он эту картинку просто должен вывести. Всвязи с тем что недоброжелатили могут написать вместо пути до картинки вообще что Бог на душу положит, начиная от игр с кавычками и заканчивая яваскриптами, а может и не заканчивая.. вообщем не знаю сколько всего можно придумать чтобы навредить. Меня собственно интересует, какие вообще есть еще варианты для взлома и как от этого всего правильно защищаться? |
Автор: nerezus 9.10.2009, 23:01 |
Что? У тебя пхп-файл отдает картинку? Зачем? o_O |
Автор: Chewits 10.10.2009, 00:06 |
ну он отдает html-страницу с картинкой, ну например туда еще можно кнопку закрытия картинки в эту страницу вставить, можно эту страницу отобразить будет как слой на другой странице.. ну чтобы красиво все было.. |
Автор: brother79 10.10.2009, 03:56 |
Проверяй, чтобы картинка была только с твоего сайта, и там ничего опасного не будет, хотя смысл задачи не понятен |
Автор: nerezus 10.10.2009, 07:38 |
Давай ты внятно скажешь задачу. а мы скажем, как ее правильно решить. |
Автор: Chewits 11.10.2009, 18:11 |
На сайте есть статьи, в статьях иллюстрации - уменьшенные копии картинок, чтобы открыть картинки во всю величину, нужно щелкнуть по этим уменьшенным копиям. Я не хочу делать так: <a href="big_photo.jpg"><img src="small_photo.jpg" alt="" /></a> потому-что хочу иметь расширенные возможности для отображения картинки (например, я хочу, чтобы картинка отображалась на html-странице с черным фоном или методами gd lib её разукрасить "на лету" - поместить на неё, допустим, эмблему сайта). Поэтому я делаю так: <a href="show_img.php?src=big_photo.jpg"><img src="small_photo.jpg" alt="" /></a> Скрипт show_img.php занимаестя выводом html-странице, на которой картинка моя будет отображена в виде: echo '<img src="'.$_GET['src'].'" alt="" />'; Я спрашивал какие опасности и как их нейтрализовать. то есть если я напишу if (file_exists("http://мой_сайт/".$_GET['src'])), этого будет достаточно? |
Автор: Ипатьев 11.10.2009, 18:20 |
Это просто не сработает. А сама затея не имеет смысла. Рисование на лету - это гарантированное средство задосить свой собственный сайт. |
Автор: Chewits 11.10.2009, 18:35 |
рисовать на лету пока и не надо, надо чтобы картинка по центру страницы отображалась и кнопка закрыть около неё была |
Автор: capitan 11.10.2009, 18:45 | ||
Chewits, Вы реально пишите
я про http:// |
Автор: nerezus 11.10.2009, 18:52 |
Chewits, как минимум ты не различаешь пути в вебе и пути на файловой системе. Либо неверно строишь задачу. Когда берешь картинку - то делай на ней лого и бросай ее в images/md5(rand(...). time()).jpeg, туда же и предпросмотр. Если картинок будет > 10k, то структуру каталога делай многоуровневой |
Автор: Ипатьев 11.10.2009, 19:04 |
file_exists, только аргументом передавать имя файла, а не URL |