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

  • 8 Ответов
  • 605 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

borro

  • ******
  • 1272
  • 21
  • желаю вам счастья
Здравствуйте.

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

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

*

yrygvay

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

Сам в поисках решения.
Смотрю....

*

robert

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

*

yrygvay

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

*

robert

  • ********
  • 4002
  • 371
ОК, как хотите. Уважаемые вебмастеры - это вы, старожилы с 2008 и 2011 годов, которые должны были знать о SQL-инъекции и способах борьбы с ней.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

borro

  • ******
  • 1272
  • 21
  • желаю вам счастья
Спасибо за науку, Robert. Век живи век учись.

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

*

yrygvay

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

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

*

borro

  • ******
  • 1272
  • 21
  • желаю вам счастья
Приветствую! Спасибо, но как я понял, этот кейс для поиска, а у меня "проблема" с кавычками в названиях товара. (
Кнопка 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, 13:43:53 от borro »

*

yrygvay

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

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

Я в соседней ветке видел, что это раньше решалось проще, использовался модуль "Русская типография" и он решали проблему с "  Но в данный момент модуль не обновляется и не поддерживается.
Смотрю....