Перейти к содержанию

Рекомендуемые сообщения

Добрый день, сегодня в журнале ошибок сайте заметил следующее
 

2016-03-10 4:09:18 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:18 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:19 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:19 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:19 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:19 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:19 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:20 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:20 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:20 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:20 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:20 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:21 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:21 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:21 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:21 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:22 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:22 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:22 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:22 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:22 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:23 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:23 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45),CHAR(45,120,50,52,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50
2016-03-10 4:09:23 - PHP Notice: Error: The used SELECT statements have a different number of columns
Error No: 1222
SELECT category_id FROM oc_product_to_category WHERE product_id = '331331111111111111' UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45),CHAR(45,120,50,52,45,81,45),CHAR(45,120,50,53,45,81,45) -- /* order by 'as /*' in /price/public_html/system/database/mysql.php on line 50


 
стоит ли беспокоиться?  был ли взлом?
ocStore Версия 1.5.5.1.2

  • +1 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Определенно стоит. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно - в стандартных файлах product_id экранирован через int в данном запросе

 

смотреть логи сервера, как минимум блокировать ip с которого идет обращение

и искать - такое ощущение что в каком-то из модулей брешь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однозначно вас пробили и только вопрос времени когда найдут решение подюнить свой код

Вопрос в другом как это получилось, там же экранирование в opencart  (int) стоит ? !

 

Это видно SQL запрос из какого то модуля, и там забыли экранирование поставить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошерстил opencart и  ocStore на предмет SELECT category_id FROM

 

Нашел в seo_pro.php

Но там ЖЕСТКО заэкранировано

И 100% пробоя нет

        $product_id = (int)$product_id;
        if ($product_id < 1) return false;
    private function getPathByProduct($product_id) {
        $product_id = (int)$product_id;
        if ($product_id < 1) return false;

        static $path = null;
        if (!is_array($path)) {
            $path = $this->cache->get('product.seopath');
            if (!is_array($path)) $path = array();
        }

        if (!isset($path[$product_id])) {
            $query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . $product_id . "' ORDER BY main_category DESC LIMIT 1");

            $path[$product_id] = $this->getPathByCategory($query->num_rows ? (int)$query->row['category_id'] : 0);

            $this->cache->set('product.seopath', $path);
        }

        return $path[$product_id];
    }
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно - в стандартных файлах product_id экранирован через int в данном запросе

 

смотреть логи сервера, как минимум блокировать ip с которого идет обращение

и искать - такое ощущение что в каком-то из модулей брешь

IP заблокировал, спасибо за совет.

заметил странные запросы к одному из файлов модуля "Похожие товары", обновил до последней версии

хостинг - шаред от Бегета. те логи что доступны, ничего подозрительного больше нет.

 

могу ли я еще что-то сделать чтобы обезопасить себя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

IP заблокировал, спасибо за совет.

заметил странные запросы к одному из файлов модуля "Похожие товары", обновил до последней версии

хостинг - шаред от Бегета. те логи что доступны, ничего подозрительного больше нет.

 

могу ли я еще что-то сделать чтобы обезопасить себя?

 

Поищите по FTP в файлах вот такой код

SELECT category_id FROM

 

И скажите где нашло (кроме seo_pro.php и моего модуля (у меня похожий код ЧПУ формирователя с seo_pro там все тоже заэкранировано))

 

Может в Похожие товары забыли экранирование поставить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если подозреваете модуль - найдите в его файлах строку, содержащую

SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id

и выложите ее здесь целиком под спойлером

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поищите по FTP в файлах вот такой код

SELECT category_id FROM

 

И скажите где нашло (кроме seo_pro.php и моего модуля (у меня похожий код ЧПУ формирователя с seo_pro там все тоже заэкранировано))

 

Может в Похожие товары забыли экранирование поставить?

 

 

class ModelModuleSimilar extends Model {

public function getProductSimilar($product_id,$limit) {

$this->load->model('catalog/product');

$product_data = array();

if($product_id){
// находим категорию, в которой нах. товар
$category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .$product_id. "'");
$category_id = $category->row['category_id'];
// делаем выборку товаров из этой же категории, которые следуют после данного товара
$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '" . (int)$category_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p.product_id > '" .(int)$product_id. "' ORDER BY p.product_id ASC LIMIT " .(int)$limit);

foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->model_catalog_product->getProduct($result['product_id']);
}

if(count($query->rows) < $limit){ // если в категории после товара меньше установленного лимита...
$limit = $limit - count($query->rows); // вычисляем разницу и делаем выборку товаров с НАЧАЛА списка, кол-во = разнице
$sql = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '" . (int)$category_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p.product_id <> '" .(int)$product_id. "' ORDER BY p.product_id ASC LIMIT " .(int)$limit);

foreach ($sql->rows as $result) {
$product_data[$result['product_id']] = $this->model_catalog_product->getProduct($result['product_id']);
}
}
}

return $product_data;
}
}

 

Модуль https://opencartforum.com/files/file/834-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BF%D0%BE%D1%85%D0%BE%D0%B6%D0%B8%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B/

Изменено пользователем PoliteX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Алаверды - вот там и пробой

$category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .$product_id. "'");

Нет экранирования $product_id

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

писать автору, указывать на эту тему

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исправьте код на

 

$category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .(int) $product_id. "'");

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сам модуль пока лучше отключить

либо изменить строку

$category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .$product_id. "'");

на

$category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .(int)$product_id. "'");
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

 

да что ж ты будешь делать!!! никак не успеваю! :-D :-D :-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное всем спасибо за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да что ж ты будешь делать!!! никак не успеваю! :-D :-D :-D

Та, да :)

 

Главная суть, что пользователю помогли

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ТС тоже молодец - обратил внимание

к сожалению, подавляющее большинство в журнал ошибок даже и не заглядывают - не говоря о том чтобы эти самые ошибки устранять..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ТС тоже молодец - обратил внимание

к сожалению, подавляющее большинство в журнал ошибок даже и не заглядывают - не говоря о том чтобы эти самые ошибки устранять..

За что PoliteX и получил два плюса :-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ТС тоже молодец - обратил внимание

к сожалению, подавляющее большинство в журнал ошибок даже и не заглядывают - не говоря о том чтобы эти самые ошибки устранять..

еще бы разобраться с 

 

/public_html/system/library/request.php

и

/public_html/system/library/cache.php

 

и лог ошибок был бы чист  :-)

Изменено пользователем PoliteX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что с ними не так?

впрочем, лучше для этого отдельную тему создать (предварительно поискать по форуму - возможно ответы уже есть)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

еще бы разобраться с 

 

/public_html/system/library/request.php

и

/public_html/system/library/cache.php

 

и лог ошибок был бы чист  :-)

А там еще что у вас ?

Уже успели и туда хакеры нагадить ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что с ними не так?

впрочем, лучше для этого отдельную тему создать (предварительно поискать по форуму - возможно ответы уже есть)

Теперь Вы раньше :) :) :-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public_html/system/library/request.php on line 33
 
пишут что решение в .htaccess файл  добавить GeoIPEnableUTF8 On
Однако добавление ложит сайт с 400 ошибкой. обратился к хостеру за помощью.
 
а /public_html/system/library/cache.php

2016-03-10 16:14:09 - PHP Warning: unlink(/home/l/lushko/price/public_html/system/cache/cache.product.seopath.1457619249) [0function.unlink0]: No such file or directory in /home/l/lushko/price/public_html/system/library/cache.php on line 46

2016-03-10 11:04:50 - PHP Warning:  file_get_contents(/home/l/lushko/price/public_html/system/cache/cache.product.seopath.1457600690) [0function.file-get-contents0]: failed to open stream: No such file or directory in /home/l/lushko/price/public_html/system/library/cache.php on line 10
2016-03-10 11:04:51 - PHP Warning:  unlink(/home/l/lushko/price/public_html/system/cache/cache.product.seopath.1457600691) [0function.unlink0]: No such file or directory in /home/l/lushko/price/public_html/system/library/cache.php on line 46
2016-03-09 20:49:26 - PHP Warning:  fopen(/home/l/lushko/price/public_html/system/cache/seocms/seoblog/cache.blog.seoblog.record.blog_design.1457581766) [0function.fopen0]: failed to open stream: No such file or directory in /home/l/lushko/price/public_html/system/library/agoo/cache.php on line 140

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public_html/system/library/request.php on line 33

 

пишут что решение в .htaccess файл  добавить GeoIPEnableUTF8 On

Однако добавление ложит сайт с 400 ошибкой. обратился к хостеру за помощью.

 

а /public_html/system/library/cache.php

2016-03-10 16:14:09 - PHP Warning: unlink(/home/l/lushko/price/public_html/system/cache/cache.product.seopath.1457619249) [0function.unlink0]: No such file or directory in /home/l/lushko/price/public_html/system/library/cache.php on line 46

2016-03-10 11:04:50 - PHP Warning:  file_get_contents(/home/l/lushko/price/public_html/system/cache/cache.product.seopath.1457600690) [0function.file-get-contents0]: failed to open stream: No such file or directory in /home/l/lushko/price/public_html/system/library/cache.php on line 10
2016-03-10 11:04:51 - PHP Warning:  unlink(/home/l/lushko/price/public_html/system/cache/cache.product.seopath.1457600691) [0function.unlink0]: No such file or directory in /home/l/lushko/price/public_html/system/library/cache.php on line 46
2016-03-09 20:49:26 - PHP Warning:  fopen(/home/l/lushko/price/public_html/system/cache/seocms/seoblog/cache.blog.seoblog.record.blog_design.1457581766) [0function.fopen0]: failed to open stream: No such file or directory in /home/l/lushko/price/public_html/system/library/agoo/cache.php on line 140

Насчет cache...

Это не зависит от модуля.

Это зависит от НЕ ПРАВИЛЬНОЙ настройки сервера ХОСТЕРА

Точнее не правильного кеширования файловой системы (ФС)

К примеру - скрипт запрашивает, есть ли такой файл, чтобы я его удалил... сервер бодро отвечает - ЕСТЬ! (проверил "я" в кеше ФС - он есть). Модуль говорит - OK, удаляю... а тут бац а реально его уже на сервере давно нет. Понятное дело что php об этом выдает ПРЕДУПРЕЖДЕНИЕ - это не ошибка, это предупреждение, причем на совести ХОСТЕРА

Так что на это обращать внимание не стоит особо

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не лучше ли контроль и приведение типов делать на входе в функцию?

public function getProductSimilar($product_id,$limit) {

$product_id = (int)$product_id;
$limit = (int)$limit;

Тогда не придется, как в данном случае, искать, где было экранирование, а где - нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Mops009
      День добрый, недавно была атака, пытались делать запросы типа:
      0UNION%20SELECT%20CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45)%20--%20/*%20order%20by%20%27as%20/* _or_(1,2)=(select*from(select+name_const(CHAR(108,105,71,88,117,97,83,105,67,119,120),1),name_const(CHAR(108,105,71,88,117,97,83,105,67,119,120),1))a)+--+&quot;x=&quot;=  Скину все логи за этот день, хочется убедиться, что попытка была неудачной, либо заделать брешь на будущее.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.