Уважаемые посетители портала Kamensk.NET! Напоминаем вам, что будучи зарегистрированным пользователем вы получаете возможность оставлять комментарии к новостям на сайте и к топикам на форуме, иметь доступ к скрытым разделам и много других благ и привелегий. Пожалуйста заполните регистрационную форму, это отнимет у вас всего лишь несколько минут вашего времени.

Программирование

osCommerce: уязвимость в модуле kvitan.php (квитанция Сбербанк)

Найденная уязвимость позволяет любому пользователю смотреть любой заказ, оформленный в магазине где установлен модуль печати квитанции Сбербанка (файл kvitan.php).

Любой посетитель сайта может набрать в браузере: http://www.example.com/kvitan.php?order_id=X (или http://www.example.com/catalog/kvitan.php?order_id=X или другой путь по которому установлен каталог магазина), где X - это номер заказа (число), и просмотреть квитанцию сбербанка с датой, суммой платежа и платёжным адресом клиента.

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

В 2008 году Александр Меновщиков известный под псевдонимом «vam», включил исправленную версию этого скрипта в свою пиратскую сборку «osCommerce VAM edition» ("патч" как и саму сборку могут скачивать только купившие лицензию, при том что движок распространяется по GPL). Но этот патч не устраняет уязвимость полностью.

В модификации от VAM был добавлен код, проверяющий залогинен ли пользователь, но при этом там всё равно нет проверки на соответствие между номером заказа и учётной записи пользователя. Поэтому для эксплуатации уязвимости в версии распространяемой Александром Меновщиковым, достаточно зарегистрироваться в магазине и можно точно также скачать все заказы.

Ниже приведён код, исправляющий данную уязвимость.

osCommerce: поиск в имени категории

osCommerce (ОСК, OSC) - самая известная CMS для интернет-магазина, распространяется по лицензии GPL.

Ниже приведена простая доработка механизма поиска товаров, которая добавляет название категории в область поиска.

Например, есть категория с названием "УАЗ", в ней есть товар "Двигатель ЗМЗ-4021".
При поиске "двигатель уаз" данный товар не будет найден, т.к. слово "уаз" не указано в названии товара (поиск производится по названию товара и по каталожному коду (model)). Приведённый ниже код устраняет этот недостаток.

Примечание: все изменения производились в текущей версии 2.2 RC2a.

osCommerce: корректный вывод курса валют ЦБРФ

osCommerce (ОСК, OSC) - самая известная CMS для интернет-магазина, распространяется по лицензии GPL.

Широко используемая в российских магазинах функция quote_cbr_currency для синхронизации курсов валют с ЦБРФ некорректно обрабатывает курс таких валют как белорусские рубли, тенге, юани и других валют, курс которых указан не за единицу (как доллар или евро) а за большее кол-во денег.
Например, курс белорусского рубля, выдаваемый сервером ЦБ нужно делить на 1000, тенге - на 100, юаня на 10 и т.п.
Порядок курса находится в поле <Nominal> XML-файла (http://www.cbr.ru/scripts/XML_daily.asp).

Ниже приведено исправление для этой функции, которое учитывает Nominal.