Форум русской поддержки Joomla!® CMS
04.12.2016, 14:17:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Кавычки при поиске товаров по названию превращаются в решётки

 (Прочитано 439 раз)
0 Пользователей и 1 Гость смотрят эту тему.
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1150


желаю вам счастья


« : 24.09.2014, 15:30:53 »

Здравствуйте.

В VirtueMart 2.6.6 обнаружил, что если во встроенном модуле поиска (админка, фронтенд) имеются двойные кавычки, то они превращаются либо в совокупность символов "#34" в админке, либо в "34" во фронте. То есть например ввожу в поиске
Цитировать
Брелок "ФСКН России"
, на выходе во фронте система показывает, что поиск производился по
Цитировать
Брелок 34ФСКН России34
и как результат ничего не находится.

Кто-нибудь сталкивался с такой подменой кавычек?
Записан
yrygvay
Живу я здесь
******

Репутация: +35/-3
Offline Offline

Пол: Мужской
Сообщений: 1261



« Ответ #1 : 11.12.2015, 12:49:25 »

По идее нам всем поможет :http://joomlaforum.ru/index.php/topic,10544.240.html но для 3 Joomla решение пока нет.

Сам в поисках решения.
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #2 : 12.12.2015, 02:47:32 »

Кто-нибудь сталкивался с такой подменой кавычек?
Сам в поисках решения.
Уважаемые вебмастеры, что будет, если я напишу в запросе
Цитировать
Брелок ФСКН России%"; DELETE FROM #__virtuemart_products WHERE 1 OR virtuemart_product_id LIKE "%
?
« Последнее редактирование: 12.12.2015, 02:53:10 от robert » Записан
yrygvay
Живу я здесь
******

Репутация: +35/-3
Offline Offline

Пол: Мужской
Сообщений: 1261



« Ответ #3 : 16.12.2015, 00:34:17 »

Уважаемые вебмастеры, что будет, если я напишу в запросе?
Вечер добрый, видно магия!) а по существу не знаю, может вебмастеры подскажут.
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #4 : 16.12.2015, 01:39:08 »

ОК, как хотите. Уважаемые вебмастеры - это вы, старожилы с 2008 и 2011 годов, которые должны были знать о SQL-инъекции и способах борьбы с ней.
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1150


желаю вам счастья


« Ответ #5 : 16.12.2015, 11:17:07 »

Спасибо за науку, Robert. Век живи век учись.

yrygvay, обновитесь, если есть вариант, по-моему в последней версии (3.0.12) это разрешили. Либо попробуйте применить этот кейс, вдруг найдёте как и где применить
Записан
yrygvay
Живу я здесь
******

Репутация: +35/-3
Offline Offline

Пол: Мужской
Сообщений: 1261



« Ответ #6 : 18.12.2015, 11:24:43 »

Спасибо за науку, Robert. Век живи век учись.

yrygvay, обновитесь, если есть вариант, по-моему в последней версии (3.0.12) это разрешили. Либо попробуйте применить этот кейс, вдруг найдёте как и где применить
Приветствую! Спасибо, но как я понял, этот кейс для поиска, а у меня "проблема" с кавычками в названиях товара. (
Кнопка APВВ-22N "I-O" d22мм неон/240В 1з+1р ИЭК вот так примерно)
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1150


желаю вам счастья


« Ответ #7 : 18.12.2015, 12:40:13 »

Приветствую! Спасибо, но как я понял, этот кейс для поиска, а у меня "проблема" с кавычками в названиях товара. (
Кнопка APВВ-22N "I-O" d22мм неон/240В 1з+1р ИЭК вот так примерно)
В смысле при сохранении товара?
тогда надо сделать переопределение вот такого файла /administrator/templates/isis/html/com_virtuemart/product/product_edit_information.php в используемом админском шаблоне, у меня это isis
там для версии 3.0.9 надо вставить строку помеченную у меня комментами bng347-11. Примерно такой контекст:
Код:
<table class="adminform" width="100%">
<tr class="row<?php echo $i?>">
<td style="min-width:75px;max-width:200px;width:130px;">
<?php echo vmText::_('COM_VIRTUEMART_PRODUCT_FORM_NAME')?>
</td>
<td>
<input class="required" type="text" class="inputbox"  name="product_name" id="product_name" value="<?php
//bng347-11
echo htmlentities($this->product->product_name, ENT_QUOTES);
//bng347-11 end
?>" size="32" maxlength="255" />
</td>
<td colspan="2">
<label><?php echo VmHTML::checkbox('published', $this->product->published); ?><?php echo vmText::_('COM_VIRTUEMART_PUBLISHED')?></label>
<label><?php echo VmHTML::checkbox('product_special', $this->product->product_special); ?> <?php echo vmText::_('COM_VIRTUEMART_PRODUCT_FORM_SPECIAL')?></label>
</td>
<td>
Также надо в \administrator\components\com_virtuemart\controllers\product.php вставить примерно такое(помечено комментом):
Код:

function save($data = 0){
if($data===0)$data = vRequest::getRequest();
        //bng347-11
        $data['product_name'] = str_replace(""",'"', $data['product_name']);
        //bng347-11 end
на устойчивость к инъекциям не проверял...
Наш умный форум подменил то, что на самом деле стоит в str_replace. там замените пожалуйста в первом параметре срединную " набором символов &#34;
« Последнее редактирование: 18.12.2015, 12:43:53 от borro » Записан
yrygvay
Живу я здесь
******

Репутация: +35/-3
Offline Offline

Пол: Мужской
Сообщений: 1261



« Ответ #8 : 18.12.2015, 13:16:41 »

В смысле при сохранении товара?

на устойчивость к инъекциям не проверял...
Наш умный форум подменил то, что на самом деле стоит в str_replace. там замените пожалуйста в первом параметре срединную " набором символов &#34;

Я в соседней ветке видел, что это раньше решалось проще, использовался модуль "Русская типография" и он решали проблему с "  Но в данный момент модуль не обновляется и не поддерживается.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet