Перейти к содержанию
Официальный форум поддержки Simpla

token у рисунков - идея по переделке


Рекомендуемые сообщения

Всем привет.
Интересует мнение разработчиков. 

Задача: избавится от token в get запросе у рисунков, с сохранением механизма проверки от нежелательных ресайзов

Идея реализации: перенести token в название файла. 

в результате имя файла будет примерно таким: {filename}.{width}x{height}{w}_{token}.{ext} 
сам token брать из строки {filename}.{width}x{height}{w}.{ext}

маска регулярки выходит такой /(.+)\.([0-9]*)x([0-9]*)(w)?(_[a-f0-9]{32})\.([^\.]+)$/

Надеюсь суть идеи понятно изложил.
Интересует Ваше мнение, возможно у кого то есть другие идеи. 

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

 

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 57
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Я вообще убрал этот токен, убрал папку resize, переделал 2 функции и теперь картинки нормально обрезаются, проверка не нужна, лишнего не нарезает.

Ссылка на сообщение
Поделиться на другие сайты

Идея реализации: перенести token в название файла.

 

На форуме уже было как минимум 3 разных решения, чтобы убрать токен СОВСЕМ, но проверку сохранить.  Вот это идея, которая для пользователей все упрощает.

А Ваше предложение - это просто поменять шило на мыло...

 

Хорошее общедоступное бесплатное решение:

http://forum.simplacms.ru/topic/8424-%D1%83%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD-%D0%B8%D0%B7-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B5%D0%BD%D0%B8%D1%8F/

Хотя не полностью правильно  заменяет стандартный функционал, но для подавляющего большинства пользователей годится...

Ссылка на сообщение
Поделиться на другие сайты

Вовсе оно не супер, а максимум фикс.

 

Может и не супер, но доступно и работает.

И оно точно лучше многих самовосхваляющих постов, где заявляется, что, мол, есть и лучшее таинственное решение. Почтальон Печкин вспоминается...

А для пользователя лучше синица в руках, чем журавль в небе...

Ссылка на сообщение
Поделиться на другие сайты

Будет свободное время будет и решение, пока что не вижу смысла бросить все и расписывать мануал.

Если готов оплатить мое время - контакты в профиле.

Ссылка на сообщение
Поделиться на другие сайты

как по мне, правильно было б, реализовать все так как у давинчи но с небольшой оптимизацией...

Что бы settings->image_sizes задавался не в ручную, а автоматически.

 

Для этого в ф-и add_resize_params класса Image делаем проверку.

Если заданного размера нет в image_sizes - то записываем его.

 

Таким образом мы сможем получать гет-запросом только те изображения которые прошли через add_resize_params (а это лишь те что прописаны у нас на сайте). Да со временем этих размеров может накопиться уйма. Но по мне раз в два года очистить - не проблема: 

 

 $simpla->settings->image_sizes = '';

Ссылка на сообщение
Поделиться на другие сайты

как по мне, правильно было б, реализовать все так как у давинчи но с небольшой оптимизацией...

Что бы settings->image_sizes задавался не в ручную, а автоматически.

 

Для этого в ф-и add_resize_params класса Image делаем проверку.

Если заданного размера нет в image_sizes - то записываем его.

 

Таким образом мы сможем получать гет-запросом только те изображения которые прошли через add_resize_params (а это лишь те что прописаны у нас на сайте). Да со временем этих размеров может накопиться уйма. Но по мне раз в два года очистить - не проблема: 

 

 $simpla->settings->image_sizes = '';

 

как мне кажется, достаточно трех-четырех размеров для всего сайта. просто сделать эти 4 параметра настраиваемые из админки а все остальные не пропускать

Ссылка на сообщение
Поделиться на другие сайты

как мне кажется, достаточно трех-четырех размеров для всего сайта. просто сделать эти 4 параметра настраиваемые из админки а все остальные не пропускать

 

для знающих, может оно и так. Но я часто встречаю пользователей для которых слово расширение вводит в ступор.

+ данный подход проще для верстальщиков. Проще экспериментировать с размерами

Ссылка на сообщение
Поделиться на другие сайты

для знающих, может оно и так. Но я часто встречаю пользователей для которых слово расширение вводит в ступор.

+ данный подход проще для верстальщиков. Проще экспериментировать с размерами

 

ну так можно сделать дофигища размеров, и верстальщики могут наделать на каждой странице их разные). можно ввести например параметр фото - small, middle, large, full и в зависимости от них отдавать картинку. а размеры этих 4х параметров задавать в админке. обычно хватает.

Ссылка на сообщение
Поделиться на другие сайты

ну так можно сделать дофигища размеров, и верстальщики могут наделать на каждой странице их разные). можно ввести например параметр фото - small, middle, large, full и в зависимости от них отдавать картинку. а размеры этих 4х параметров задавать в админке. обычно хватает.

Подобно тому как это сделано в ImageCMS. 

Хорошая мысль, тоже как-то думал об этом.

Ссылка на сообщение
Поделиться на другие сайты

Имеется разработка:


Адресация изображений без излишеств
Создана возможность записывать URL изображений товаров без токенов - хвостов зашифрованного кода.
Метод состоит в том, что список разрешенных имен файлов для ресайзинга хранится в специально созданной таблице и поэтому необходимость токенов отпадает.
Дополнительно для экономии места таблица очищается от записей, сделанных ранее некоторого срока (например, 3 дня).

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

http://simpla-tuning.com/adresatsiya-izobrazhenij-bez-izlishestv

 

При этом отсутствует недостаток разработки от DaVinci.

Если в шаблоне новый размер ввели, то он будет обрабатываться.

Если в шаблоне какой-то размер удалили, то он перестанет обрабатываться.

Никаких лишних размеров (как описано #9) нигде не накапливается.

Никакого лишнего контроля от пользователя (типа предложенного mishanya в #10) не требуется.

Все работает автоматически...

 

Дополнительно - работает корректно с разработками, в которых ресайзятся картинки для других сущностей - категорий, брендов и прочих.

 

Кстати - замечание для osben-а: если у Вас такой энтузиазм, то вместо своего малополезного предложения разработали ли бы лучше настоящий полный ресайз - для всех картинок, а не только для товаров. Была бы настоящая большая польза, а не примитивное косметическое украшение...

Ссылка на сообщение
Поделиться на другие сайты

 Метод, возможно, спорный. Кто-то, вероятно, увидит в этом излишнее усложнение.

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

http://simpla-tuning.com/adresatsiya-izobrazhenij-bez-izlishestv

Т.е. если я открываю страницу каталога, нажимаю "показать все", у меня вываливается к примеру 800 товаров, нагрузка существенно не возрастет)?

Ссылка на сообщение
Поделиться на другие сайты

Т.е. если я открываю страницу каталога, нажимаю "показать все", у меня вываливается к примеру 800 товаров, нагрузка существенно не возрастет)?

 

Если Вы - один из рядовых посетителей, то, скорее всего, все 800 картинок до Вашего посещения УЖЕ обработаны резайзом. В этом случае ВООБЩЕ не будет дополнительной нагрузки, так как ресайз при создании страницы вообще не будет задействован.

 

Может возникнуть нагрузка, если в админке непосредственно перед Вашим посещением записали эти 800 товаров. Это максимум 800 легких дополнительных запросов. Полагаю, эта ситуация весьма редкая.

 

 

Да, существенно не возрастет.

Ссылка на сообщение
Поделиться на другие сайты

ой, я что то пропустил. 
вставлю своих 5 копеек.
Считаю что DaVinci придумал очень интересно решение и лаконичное.
И его в принципе можно было использовать, но все загвоздка как раз в settings->image_sizes которая приводит к лишним запросам в бд.

Поэтому и хотел бы услышать идеи как выйти из этой ситуации с токенами. 

П.с. вариант который я предложил я понял спустили

Ссылка на сообщение
Поделиться на другие сайты

А почему бы не сделать проверку в функции ресайза на существование ресайза?

И если он УЖЕ ЕСТЬ - запрашивать его без токена?

А если нет - тогда вперед и с токеном? 

Ссылка на сообщение
Поделиться на другие сайты

Считаю что DaVinci придумал очень интересно решение и лаконичное.

И его в принципе можно было использовать, но все загвоздка как раз в settings->image_sizes которая приводит к лишним запросам в бд.

 

Интересно, где Вы в решении DaVinci нашли лишние запросы? Большинству сайтов его можно и нужно использовать не в принципе, а в реальности...

 

Если в шаблоне появится новый размер, то решение DaVinci добавит один запрос в базу по обновлению settings. Причем добавит ОДИН РАЗ у первого пользователя, который откроет одну из картинок  этого нового размера, а дальше никаких дополнительных запросов не будет даже при открытии других картинок любыми посетителями...

Ссылка на сообщение
Поделиться на другие сайты

А почему бы не сделать проверку в функции ресайза на существование ресайза?

И если он УЖЕ ЕСТЬ - запрашивать его без токена?

А если нет - тогда вперед и с токеном? 

 

Видимо, из-за этого:

http://forum.simplacms.ru/topic/1506-как-избавиться-от-подобных-окончаний-0d94d4f282e8b4ff474e96beb50e18d6-на-к/?p=15764

Ссылка на сообщение
Поделиться на другие сайты

А почему бы не сделать проверку в функции ресайза на существование ресайза?

И если он УЖЕ ЕСТЬ - запрашивать его без токена?

А если нет - тогда вперед и с токеном?

Проверка на токен вообще не нужна, вы все не в том направлении мыслите.
Ссылка на сообщение
Поделиться на другие сайты

Проверка на токен вообще не нужна, вы все не в том направлении мыслите.

 

Я вам посылку принёс, только я вам её не отдам, потому как у вас документов нету.

Ссылка на сообщение
Поделиться на другие сайты

Проверка на токен вообще не нужна, вы все не в том направлении мыслите.

Не совсем согласен.

Без нее было бы проще, но с ней безопаснее. 

 

 

Ссылка на сообщение
Поделиться на другие сайты

Не совсем согласен.

Без нее было бы проще, но с ней безопаснее.

Если переделать немного функционал ресайза, то в целях безопасности токен становится не нужным.
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...