berrber Опубликовано: 27 февраля 2015 Поделиться Опубликовано: 27 февраля 2015 Завантажити / Придбати розширення Отзывы покупателей о магазине (отдельная страница) Описание модуля: Отзывы публикуются на отдельной странице. Можно дополнительно разместить отзывы ввиде модуля. Отзывы добавляют клиенты магазина, заполняя форму. Отзыв, заполненный клиентом, по-умолчанию отключен, для публикации требуется включить его в панели управления магазином. Отзывы публикуются от нового к старым, по дате публикации. Возможности модуля: 1. Администратор магазина может редактировать, удалять, создавать отзыв. 2. Один язык. 3. Нет поддержки мульти-магазина. 4. Возможно выставлять: количество отзывов, при превышении появляется постраничная навигация схему позицию оповещать о новом отзыве по e-mail или нет автор дата публикации текст рейтинг включить или отключить Поддержка ostore/opencart: v1.5.1.3.1 v1.5.2.1 v1.5.4.1 v1.5.3.1 v1.5.5.1 v1.5.6.4 Публичная оферта: 1. Автор не несет ответственности за код модуля и последствия его использования. 2. Модуль поддерживается/развивается силами сообщества opencartforum, автор не берет на себя обязательство поддержки/развития модуля. 3. Автор не заинтересован в платных доработках. Автор berrber долучення 22.02.15 Категорія Модули Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... localhost Опубликовано: 2 марта 2015 Поделиться Опубликовано: 2 марта 2015 1.5.3.1 = полет нормальный... Аффтору респект за модуль..... Вопрос тока такой = количество отзывов, при превышении появляется постраничная навигация = где прописывается сей лимит??... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 6 апреля 2015 Автор Поделиться Опубликовано: 6 апреля 2015 1.5.3.1 = полет нормальный... Аффтору респект за модуль..... Вопрос тока такой = количество отзывов, при превышении появляется постраничная навигация = где прописывается сей лимит??... Панель управления, меню Система-Настройки-Опции-Элементов на страницу (Витрина). Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 4 недели спустя... Etesian Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить? Модуль сверстан под стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Нет в планах реализовывать функционал. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 подскажите в какую стороун смотреть буду сам пробывать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
localhost Опубликовано: 2 марта 2015 Поделиться Опубликовано: 2 марта 2015 1.5.3.1 = полет нормальный... Аффтору респект за модуль..... Вопрос тока такой = количество отзывов, при превышении появляется постраничная навигация = где прописывается сей лимит??... Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
berrber Опубликовано: 6 апреля 2015 Автор Поделиться Опубликовано: 6 апреля 2015 1.5.3.1 = полет нормальный... Аффтору респект за модуль..... Вопрос тока такой = количество отзывов, при превышении появляется постраничная навигация = где прописывается сей лимит??... Панель управления, меню Система-Настройки-Опции-Элементов на страницу (Витрина). Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 4 недели спустя... Etesian Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить? Модуль сверстан под стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Нет в планах реализовывать функционал. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 подскажите в какую стороун смотреть буду сам пробывать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Etesian Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить? Модуль сверстан под стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Нет в планах реализовывать функционал. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 подскажите в какую стороун смотреть буду сам пробывать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Нет в планах реализовывать функционал. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 подскажите в какую стороун смотреть буду сам пробывать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
berrber Опубликовано: 3 мая 2015 Автор Поделиться Опубликовано: 3 мая 2015 возможно ли сделать чтобы клиент мог прикреплять изображение к отзыву? Нет в планах реализовывать функционал. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 подскажите в какую стороун смотреть буду сам пробывать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
globestar Опубликовано: 3 мая 2015 Поделиться Опубликовано: 3 мая 2015 подскажите в какую стороун смотреть буду сам пробывать Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 подскажите в какую стороун смотреть буду сам пробывать Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Добрый день. Если вам нужно добавить в форму отправки отзыва возможность прикрепить файл, это не сложно. Смотрите как сделано подобное в опциях. Если требуется отображать это изображение/изображения в отзывах, то задача не тривиальна, требует временных затрат на проектирование и реализацию, как следствие вам придется ознакомится с кодом всего модуля, при условии что необходимо сделать решение, которым будет удобно пользоваться и оно максимально автоматизирует процесс. Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Задача то тривиальна, но есть большая проблема! Это безопасность. Перехватить название файла и папку можно даже не через код, а через пробои в сервере хостера. Так что таким методом вы сами свой сайт подвергаете опасности Вы представляете, если будут заливать шеллы, трояны Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально". Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях? Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
berrber Опубликовано: 16 июня 2015 Автор Поделиться Опубликовано: 16 июня 2015 Перехватывается все через хостера. Записывается исполняемый файл .php с известным именем. думаю дальше не надо обьяснять что туда можно засунуть В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне. Возможно я не понял проблемы в контексте задачи. Описание подробности механизма перехвата, описание неустойчивости предложенного мной варианта, в разрезе подобных решений на базе opencart официальной сборки, комментарии и предложения по решению проблемы были бы крайне уместны в ложившейся беседе, в противном не вижу смысла. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 http://habrahabr.ru/post/224351/ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
teslaS Опубликовано: 16 июня 2015 Поделиться Опубликовано: 16 июня 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 http://habrahabr.ru/post/224351/ Что в этой статье касается opencart, конкретно функции upload в product? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Что в этой статье касается opencart, конкретно функции upload в product? Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу В данный момент вы ставите модуль в позиции, для отображения ссылки на отдельную страницу с отзывами Вам необходимо самостоятельно установить ссылку на страницу отзывов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Да, касается Пробой не зависит от качества кода, он зависит от настроек хостера Вы про какой "пробой" пишите? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Вы про какой "пробой" пишите? Прочтите, проанализируйте статью на хабре Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостераХакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница) Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha
berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Прочтите, проанализируйте статью на хабре На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Модули и дополнения [Поддержка] Отзывы покупателей о магазине (отдельная страница)
markimax Опубликовано: 21 июля 2015 Поделиться Опубликовано: 21 июля 2015 На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию. Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Самая прямая дорога к RCE — возможность загрузки файлов на сервер Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации [Поддержка] Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 9 ответов 1 999 просмотров Seriusis 18 сентября 2022 Google Reviews - отзывы с гугл карт (Google Business) с виджетом доверия + отзывы о товарах Автор: Seriusis, 12 октября 2021 гугл отзывы google review (и ещё 4) Теги: гугл отзывы google review google api reviews отзывы отзывы парсинг 0 комментариев 6 714 просмотров Seriusis 12 октября 2021 Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. Автор: Sha, 15 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 0 комментариев 49 280 просмотров Sha 15 марта 2017 [Поддержка] Универсальный массовый редактор товаров OpenCart! Найти и заменить! ChatGPT OpenAI. MULTIEDIT. 1 2 3 4 10 Автор: Sha, 16 марта 2017 batch chat gpt (и ещё 101) Теги: batch chat gpt pro атрибуты опции массовое редактирование editor products скидки мета мета-теги пакетное редактирование товаров админка групповое массовое массовая продукты быстрое изменение добавление добавить цена цены опций акции управление статус обработка категорий премиум групповая скидка товар стоимость валюта прайс price акция категория корзина продажа продажи баллы отзывы статьи галерея заказ быстрый обновление цены ocmod atribute модели автодополнение снипеты скорость модуль блоки форма product наполнение интернетмагазина обновление товар опции в категории универсальный рекомендуем opencart фильтр filter регистрация опция изменить товары категории производители українською українська chatgpt chatbots multi multiedit search replace replacer find search and replace find and replace edit seo faq seo faq filter products filter opencart filter for brands filter for products filter pro filteroc ocfilter oc filter open openai opencart ai ai opencart 240 ответов 43 991 просмотр COBECTb11 22 марта coupon [Поддержка] Скидки - купон за отзыв Автор: chukcha, 24 мая 2019 review отзыв (и ещё 1) Теги: review отзыв купон 11 ответов 2 564 просмотра chukcha 19 октября 2023 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
berrber Опубликовано: 21 июля 2015 Автор Поделиться Опубликовано: 21 июля 2015 Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются. Код из статьи function process_upload($upload) { $ext = explode('.', $upload['name']); $ext = strtolower($ext[count($ext)-1]); $filename = md5_file($upload['tmp_name']); move_uploaded_file($upload['tmp_name'], 'temp/'.$filename.'.'.$ext); $info = getimagesize('temp/'.$filename.'.'.$ext); $tmp_ext = str_replace('image/', '', $info['mime']); if ($ext != $tmp_ext) { rename('temp/'.$filename.'.'.$ext, 'temp/'.$filename.'.'.$tmp_ext); $ext = $tmp_ext; } if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') { unlink('temp/'.$filename.'.'.$ext); return false; } // Проверки пройдены, далее обработка легитимной загрузки. Комментарий автора статьи, касательно кода Как видим, здесь происходит следующее: Генерация имени конечного файла по его содержимому (aka md5sum $tmp_name) Добавление к этому имени оригинального расширения Перемещение загруженного файла во временную папку по этому имени; папка видна извне как http://example.com/temp/ Проверка формата файла — если расширение отличается от того, которое соответствует формату, то файл во временной папке переименовывается под «настоящее» расширение Если файл — не изображение — он удаляется Файл /catalog/controller/product/product.php, код загрузки public function upload() { $this->language->load('product/product'); $json = array(); if (!empty($this->request->files['file']['name'])) { $filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8'))); if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) { $json['error'] = $this->language->get('error_filename'); } $allowed = array(); $filetypes = explode(',', $this->config->get('config_upload_allowed')); foreach ($filetypes as $filetype) { $allowed[] = trim($filetype); } if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) { $json['error'] = $this->language->get('error_filetype'); } if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) { $json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']); } } else { $json['error'] = $this->language->get('error_upload'); } if (!$json) { if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) { $file = basename($filename) . '.' . md5(mt_rand()); // Hide the uploaded file name so people can not link to it directly. $json['file'] = $this->encryption->encrypt($file); move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file); } $json['success'] = $this->language->get('text_upload'); } $this->response->setOutput(json_encode($json)); } В статье описана проблема - перемещение файла, после проверка формата. Это вызывает проблему. В opencart сначала проверка, после перемещение, да еще с помощью move_uploaded_file. Проблемы не вижу. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 недели спустя... Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 Вперёд Страница 1 из 2 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0
Sovikk Опубликовано: 8 августа 2015 Поделиться Опубликовано: 8 августа 2015 В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору." Сам нахожусь в панели управления под администратором. Где крутить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения