Обновление компонентов "Донаты и складчины" и "UpJump - продвижение"

+7
303
Обновление компонентов "Донаты и складчины" и "UpJump - продвижение"

Получив по шее от Fuze, устранил уязвимости у компонентов «Донаты и складчины» и «UpJump — продвижение»

Всем, кто когда-либо скачивал с моего сайта платные версии этих компонентов, я БЕСПЛАТНО обновил версии во вкладке InstantCMS в вашем профиле на моем сайте. Обязательно скачайте новую версию и обновите — использовать компоненты предыдущих версий опасно!

Когда-то компонент «Донаты и складчины» был бесплатным. Если у вас на сайте установлена бесплатная версия, то у вас есть выбор:

  • срочно удалить компонент со всех своих сайтов;
  • приобрести подписку VIP и скачать новую безопасную версию;
  • внести изменения в файлы, как написано ниже.

В файле system/controllers/donates/model.php в самом низу перед закрывающей фигурной скобкой добавьте такой код:

  1. public function checkData($ctype_name, $item_id, $field_name) {
  2.  
  3. $ctype_name = preg_replace('/[^\w]/', '', $ctype_name);
  4.  
  5. if ($ctype_name != 'users' && $ctype_name != 'groups') {
  6.  
  7. $ctype = $this->getItemByField('content_types', 'name', $ctype_name);
  8.  
  9. } else {
  10.  
  11. $ctype = $this->get($ctype_name);
  12.  
  13. }
  14.  
  15. if (!$ctype) {
  16.  
  17. return '';
  18.  
  19. }
  20.  
  21. $field_name = preg_replace('/[^\w]/', '', $field_name);
  22.  
  23. $table = 'con_'.$ctype_name;
  24.  
  25. if ($ctype_name == 'users' || $ctype_name == 'groups') {
  26.  
  27. $table = $ctype_name;
  28.  
  29. }
  30.  
  31. $field = $this->getItemByField($table.'_fields', 'name', $field_name);
  32.  
  33. if (!$field || strpos($field['type'], 'donates') === false) {
  34.  
  35. return '';
  36.  
  37. }
  38.  
  39. if ($item_id) {
  40.  
  41. $item_id = (int) $item_id;
  42.  
  43. $item = $this->getItemById($table, $item_id);
  44.  
  45. if (!$item) {
  46.  
  47. return '';
  48.  
  49. }
  50.  
  51. }
  52.  
  53. return true;
  54.  
  55. }

2. Во всех файлах в папке system/controllers/donates/actions, в метод run() которых передаются какие-либо данные, в самом начале метода run() напишите это:

  1. $result = [];
  2.  
  3. $result['action'] = 'error';
  4.  
  5. $check_data = $this->model->checkData($ctype_name, $item_id, $field);
  6.  
  7. if (!$check_data) {
  8.  
  9. return $this->cms_template->renderJSON($result);
  10.  
  11. }

В одном из файлов вместо $field надо написать $field_name — смотрите, что в скобках: run(...). Это должно выглядеть примерно вот так:

Изображение

И еще, раз такое дело, снижаю цену на VIP до конца недели. Количество баллов такое же, но стоимость в рублях ниже на 20%. Только до конца недели))

0
Happy Happy 28 дней назад #

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

0
Нифигаccе о-го-гошеньки Нифигаccе о-го-гошеньки 28 дней назад #

Лучше обновите. 

0
Happy Happy 28 дней назад #

Да я обновлю в любом случае, просто понимание для простолюдинов )

0
Happy Happy 28 дней назад #

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

+2
Нифигаccе о-го-гошеньки Нифигаccе о-го-гошеньки 28 дней назад #

А он и не проверял эти компоненты. Просто они работают примерно так же, как и это поле.

А недоработки есть у всех. Не ошибается тот, кто ничего не делает))

Еще от автора

Поле "UpJump - поднятие записей"
Поднятие авторами своих записей в списках типов контента и групп.
Компонент "UpJump - продвижение записей в списках" стал доступнее
И снова делаю то, о чем вы просили. Теперь речь про компонент "UpJump - продвижение записей в списках" - теперь он стал доступнее.
Компонент Google Indexing дешевле!
Как вы и просили, теперь компонент стал доступнее. Но есть нюансы.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.