2010-12-08 5 views
0

пожалуйста, прочитайте это внимательно, надеюсь, что вы можете помочь мне с моей парадигме;)Apache + PHP Г.Д., кэширование изображений парадигмы

Базовая версия, работает как мята - - -

У меня есть PHP + Г.Д. скрипт, который генерирует изображение из заданного текста, например, так:

[IMG SRC = "renderImage.php текст = Джон Доу  " ALT = "Jonn Doe" /]

Выход - изображение, которое передает готовый текст. Скажем, 12px arial # 000000

Затем я добавляю apache mod_rewrite к уравнению, чтобы сервер попытался получить доступ к кэшированному изображению и не будет ли он существовать, сгенерируйте его через php-скрипт, чтобы получить его сгенерированный (и сохранены как ¨John.png¨):

[IMG SRC = "/ изображения/кешированные/John Doe     2" альт = "John Doe 2" /] < - это может быть практически преобразована в ->[img src = "renderImage.php? Text = John   Doe" alt = "Jonn Doe" /]

Теперь расширенная версия - - -

Вопрос поставляется с двумя вещами:

1.-модифицирования PHP скрипт с более настраиваемый API:

[IMG SRC =» renderImage.php? текст = John Doe   & размер = 36 & шрифт = Verdana & цвет = FFFFFF»альт = "Jonn Doe"/]

2. -Как мы сохраняем изображения с выдержкой из своего «заполнителя» текста (например, ? RenderImage.php текст = John Doe   в John.png), когда мы получаем образы с подобными'text' заполнителей мы можем получить аналогичные имена файлов, например:

[IMG SRC = "renderImage.php текст = John   Doe & размер = 36 & шрифт = Verdana & цвет = FFFFFF "альт = "Jonn Doe"/]

[IMG SRC =" renderImage.php? текст = John Doe     был   здесь  ! размер = 24 & font = tahoma & Цвет = 333333 "alt =" Jonn Doe "/]

Оба сохранятся как John.png!

* Наконец, парадигма - - - *

Как я это исправить?я пришел к одному решению: Сохранение изображений в PHP с конкретными шифруется подобными названиями, как:

Pepe pecas | 31/12/2010 | 9: 57 | 72/Arial/FFFFFF.png

или

Pepe pecas | 31122010 | 9: 57 | 72arialFFFFFF.png

а затем получить доступ к ним в разметке как:

* [IMG SRC = "/ изображения/кэшируются/JohnDoe_24arial333 333.png "альт = "John Doe"/] *

Какой будет tranformed от апача использования решений в mod_rewrite регулярных выражений для:

[IMG SRC =" renderImage.php текст = John Doe   & размер = 24 & шрифт = Arial & цвет = 333333" альт = "Jonn Doe" /]

ЧТО ВЫ ДУМАЕТЕ?

ответ

0

Вы собираетесь потратить впустую много дискового пространства, кэшируя изображения, если вы разрешите совершенно произвольные комбинации. Что должно помешать вредоносному пользователю совершать велосипедные дорожки через все 4 миллиарда возможных цветовых кодов, размер шрифта 1-200 и, тем не менее, многие шрифты? Это «одно» изображение будет иметь более 800 миллиардов изображений на вашем диске.

Особенно, если это страница общего доступа. Было бы тривиально написать паука, чтобы поразить все возможные комбинации. При минимальной стоимости полосы пропускания для пользователя они исчерпывают ваше дисковое пространство и поддерживают ваш процессор, создавая бесполезные изображения.

+0

Ну, хотя, хотя и на этом, но не будучи программистом php, я просто хотел вслепую подумать, что будет способ исправить эту проблему безопасности. Но теперь, подумав об этом, разве нет способа избежать этого? если нет, этот автоматический сценарий «текст-изображение» будет опасен с самого начала. В настоящее время скрипт является общедоступным, но он не предназначен для публичного использования, а скорее как инструмент внутреннего дизайнера. Скрытие это может быть решением? Не сейчас, как это сделать. – Cpucpu 2010-12-09 00:05:08

+0

На самом деле это не проблема с динамическими изображениями - это их хранение. Каково намеренное использование этих изображений? Пользовательский значок/логотип? Если это так, сохраните ОДИН образ, сведя его с внутреннего идентификатора пользователя и сохраните параметры, используемые в другом месте. – 2010-12-09 03:37:49

2

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

-1

@Marc В, намерен я буду использовать его для создания заголовков [h1] [/ h1]

@niggles, а это может работать, я бы также добавить свойство текста для вычисления хэша сделать тексты более уникальными.

А как насчет того, чтобы скрыть скрипт от прямого выполнения пользователями?

Смежные вопросы