Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] Отзывы покупателей о магазине (отдельная страница)


berrber

Recommended Posts

Отзывы покупателей о магазине (отдельная страница)


Отзывы покупателей о магазине (отдельная страница)


Описание модуля:

Отзывы публикуются на отдельной странице.

Можно дополнительно разместить отзывы ввиде модуля.

Отзывы добавляют клиенты магазина, заполняя форму.

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

Отзывы публикуются от нового к старым, по дате публикации.

Возможности модуля:

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. Автор не заинтересован в платных доработках.


 

Надіслати
Поділитися на інших сайтах

1.5.3.1 = полет нормальный... Аффтору респект за модуль.....

 

Вопрос тока такой = количество отзывов, при превышении появляется постраничная навигация = где прописывается сей лимит??...

Надіслати
Поділитися на інших сайтах


  • 1 month later...

1.5.3.1 = полет нормальный... Аффтору респект за модуль.....

 

Вопрос тока такой = количество отзывов, при превышении появляется постраничная навигация = где прописывается сей лимит??...

 

Панель управления, меню Система-Настройки-Опции-Элементов на страницу (Витрина).

Надіслати
Поділитися на інших сайтах

  • 4 weeks later...

Хороший модуль. Только у меня всё уехало в бок левый) может подскажите как поправить?

 

Модуль сверстан под стандартный шаблон.

Надіслати
Поділитися на інших сайтах

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

 

Нет в планах реализовывать функционал.

Надіслати
Поділитися на інших сайтах

  • 1 month later...

подскажите в какую стороун смотреть буду сам пробывать

 

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

Надіслати
Поділитися на інших сайтах

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

Задача то тривиальна, но есть большая проблема! Это безопасность.

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

Так что таким методом вы сами свой сайт подвергаете опасности

Вы представляете, если будут заливать шеллы, трояны

Надіслати
Поділитися на інших сайтах

Задача то тривиальна, но есть большая проблема! Это безопасность.

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

Так что таким методом вы сами свой сайт подвергаете опасности

Вы представляете, если будут заливать шеллы, трояны

 

Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально".

 

Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях?

Надіслати
Поділитися на інших сайтах

Сложность реализации задачи оценивалась в рамках возможностей человека, задающего вопрос, исходя из сути вопроса. Иначе говоря не думаю что для пользователя globestar решение данной задачи своими силами "тривиально".

 

Касательно перехвата "название файла и папку", что это даст, в конкретном случае, думаю речь идет о папке download(права на чтение-запись)? После загрузки изображений или других файлов (этот процесс можно контролировать в определенных рамках) происходит копирование названия файла изображения в базу данных, для дальнейшего отображения изображения в front/back - end модуля. Если это не изображение, исполняемый файл, скрипт, как это навредит, при описанных выше условиях?

Перехватывается все через хостера.

Записывается исполняемый файл .php с известным именем.

думаю дальше не надо обьяснять что туда можно засунуть

Надіслати
Поділитися на інших сайтах

Перехватывается все через хостера.

Записывается исполняемый файл .php с известным именем.

думаю дальше не надо обьяснять что туда можно засунуть

 

В контексте задачи проблема видится надуманной, ввиду обилия подобного функционала как в самом opencart, так и в прочих аналогах. Описанный механизм атаки применим к любому продукту, размещенному на площадке доступной извне.

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

Надіслати
Поділитися на інших сайтах

  • 1 month later...

 

Что в этой статье касается opencart, конкретно функции upload в product?

Надіслати
Поділитися на інших сайтах

Что в этой статье касается opencart, конкретно функции upload в product?

Да, касается

Пробой не зависит от качества кода, он зависит от настроек хостера

Надіслати
Поділитися на інших сайтах

1.5.5.1.2 default. Не хочет "Отзывы" рядом с "Главная" появляться. только слева-справа-вверху-внизу

 

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

Надіслати
Поділитися на інших сайтах

Да, касается

Пробой не зависит от качества кода, он зависит от настроек хостера

 

Вы про какой "пробой" пишите?

Надіслати
Поділитися на інших сайтах

Вы про какой "пробой" пишите?

Прочтите, проанализируйте статью на хабре

Надіслати
Поділитися на інших сайтах

Любое разрешение по загрузке файлов на сервер - потенциальный пробой через хостера
Хакеры им частенько пользуются. Потом пользователи задают вопросы в стиле "а почему у меня шеллы или вирусы на сайте"

Надіслати
Поділитися на інших сайтах

Прочтите, проанализируйте статью на хабре

 

На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию.

Надіслати
Поділитися на інших сайтах

На мой взгляд приведенная Вами статья не применима к upload в product и описывает другую ситуацию.

Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в product

Так как все программисты думают что загрузка картинок будет безопасна если им сделать resize средствами PHP. Они ошибаются.

 

Самая прямая дорога к RCE — возможность загрузки файлов на сервер

 

Надіслати
Поділитися на інших сайтах

Эта (описанная) ситуация еще сложнее, чем простая загрузка файлов как в 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 weeks later...

В меню Каталог появился пункт "Отзывы покупателей". При входе в него вижу ошибку "У Вас нет прав для доступа к этой странице. Если она Вам нужна, обратитесь к администратору."

Сам нахожусь в панели управления под администратором. Где крутить?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.