Перейти к содержимому


Фото
* * * * * 1 голосов

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


  • Чтобы отвечать, сперва войдите на форум
36 ответов в теме

#1 osben

osben
  • Фрилансер
  • 774 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 15.11.2016 - 16:57

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

Задача: избавится от 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})\.([^\.]+)$/

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

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

 



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 569 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 15.11.2016 - 17:14

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

#3 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 15.11.2016 - 17:33

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

 

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

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

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

http://forum.simplac...еса-изобраения/

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



#4 osben

osben
  • Фрилансер
  • 774 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 15.11.2016 - 18:02

в теории можно же захламить тебе диск - правильно ? 



#5 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 077 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 15.11.2016 - 18:19

Решение от Давинчи же супер есть!



#6 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 569 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 15.11.2016 - 20:29

Решение от Давинчи же супер есть!

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

#7 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 15.11.2016 - 21:03

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

 

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

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

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



#8 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 569 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 15.11.2016 - 22:11

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

#9 yr4ik

yr4ik
  • Фрилансер
  • 687 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 15.11.2016 - 23:29

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

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

 

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

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

 

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

 

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



#10 mishanya

mishanya
  • Фрилансер
  • 2 286 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 15.11.2016 - 23:40

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

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

 

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

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

 

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

 

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

 

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



#11 yr4ik

yr4ik
  • Фрилансер
  • 687 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 16.11.2016 - 01:14

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

 

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

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



#12 mishanya

mishanya
  • Фрилансер
  • 2 286 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 16.11.2016 - 01:18

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

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

 

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



#13 ABSORBER

ABSORBER
  • Модератор
  • 380 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Хабаровск

Опубликовано 16.11.2016 - 02:23

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

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

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



#14 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.11.2016 - 09:26

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


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

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

http://simpla-tuning...-bez-izlishestv

 

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

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

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

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

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

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

 

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

 

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



#15 ABSORBER

ABSORBER
  • Модератор
  • 380 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Хабаровск

Опубликовано 16.11.2016 - 11:16

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

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

http://simpla-tuning...-bez-izlishestv

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



#16 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.11.2016 - 12:10

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

 

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

 

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

 

 

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



#17 osben

osben
  • Фрилансер
  • 774 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 16.11.2016 - 12:53

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

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

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



#18 Kosjak76

Kosjak76
  • Модератор
  • 3 548 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 16.11.2016 - 12:57

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

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

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



#19 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.11.2016 - 13:14

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

 

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


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



#20 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.11.2016 - 13:41

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

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

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

 

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

http://forum.simplac...6-на-к/?p=15764






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых