sim3x: простите великодушно, но здесь именно вы на правах спеца написали о том, что в коде опенкарта якобы много уязвимостей и взломать его может любой скрипткидди или кулхацкер. Не мифический спец по инфобезу, а вы. Вы показали на участок кода, который якобы уязвим. Почему вы считаете его уязвимым? Устаревший - да. Уязвимый - сомнительно. Судя по вашим утверждениям вы знаете куда больше меня и уверены, что это именно уязвимый код, а не просто устаревший подход в работе с базой. Такая уверенность может исходить только от человека, хотя бы раз эксплуатировавшего данную уязвимость. Так покажите тогда, как любой скрипт кидди или начинающий кулхацкер обойдет экранировку запроса. Пока я вижу только запудривание мозгов новичку, который спросил совета о движке для магазина. Движок опенкарт не новый, да, в нем есть огрехи и устаревшие решения, как и в любом пожилом движке, но если сравнивать его с тем же вордпорессом или битриксом, его код окажется на голову выше. Модх, советуемый тут выше если не ошибаюсь, вообще хранил код в базе данных. А сферический идеальный спец если его нанять может и к серверу с софтом последней версии 0day подобрать, в том числе и к вашему идеально написанному приложению, вопрос денег.
chelkaz: Ну и если на то пошло, почитайте про принципы Solid. Смешение категорий и объявлений в вашем случае его неплохо так нарушает. да и нормализация базы данных страдает.
sim3x: Я знаю, что вставлять заэкскейпленные выражения вместо пдо - есть устаревшее решение (опенкарту не один год и я полагаю это решение можно понять), но разве это является уязвимостью? Можете скинуть пример кода, которым можно обойти экранирование в запросе и взломать базу? Или вы имели в виду что-то другое?
chelkaz: ссылку поменял, более наглядно. Лишние запросы в вашем случае отнимут пару сотых секунды. А "очень неудобно" - это мягко сказано. Этот код просто будет неподдерживаем. Плюс зависим от количества объявлений в базе. Плюс вам придется изобретать собственный аналог уже существующих решений (ссылка на baum тут уже мелькнула). Когда объявлений десять и самих категорий 5 - поменять категории не так сложно, а когда объявлений станет 50 тысяч, а категорий сотня и они куда глубже 1 уровня (может не при вас, а при человеке, который будет поддерживать проект после вас)? Плюс если вы не будете хранить категории отдельной таблицей, вы столкнетесь с такими проблемами: необходимо перед обновлением категории лочить все объявления, принадлежащие ей, если кто-то из пользователей создавал в такой категории объявление или редактировал. после изменений в категории вам нужно будет оповестить его об изменениях. Самое интересное - как вы собираетесь следить за тем, чтобы пользователи не создавали собственные выдуманные категории? С внешней таблицей понятно, вы даете ему список существующих ключей. С массивами же вам придется при создании объявления для валидации имени категории сканировать всю базу объявлений и строить виртуальное дерево каждый раз, Каждый, Карл! 50 объявлений? Не проблема, 50 тысяч? ну уже посложнее и ждать подольше (при каждом создании объявления), 500 тысяч? Шеф, нам надо больше памяти покупать.
Несколько месяцев назад русская версия была практически нечитаема. Начало грамотное, но как начнешь переходить по ссылкам с главной - гугля транслейт кажется богом в сравнении с тем переводом, что там есть
sim3x: извините, но без пруфов в ваше сообщение можно вставить название любого движка. Я не особо интересовал темой, видел для старых версий опенкарта пару эксплоитов на exploitdb, но те уже закрыты. Сделайте доброе дело и опишите уязвимости авторам движка, раз уж на то пошло.
SMA2: когда появляется проблема n+1 запроса, базе становится далеко не все равно. Такое может появиться, например, при некорректно написанном модуле фильтра, который будет дергать доп атрибуты для каждого товара по по очереди (а если товаров окажется в разделе сто тысяч и на каждый по хотя бы два лишних запроса?), либо при модуле, который будет подбирать тем же не оптимальным способом сопутствующие товары - вариантов сотни. А спросил про стоимость потому, что мне интересно было, сколько стоит написать сферический магазин с нуля на ноде.
Думай Головой: изучите структуру базы опенкарта после чтения о нормализации. Быстро все на место встанет. Потом, через полгодика, можно мадженто посмотреть.
mUchenik: вам надо основы php изучить, а затем найти, какая переменная/метод в woocommerce или в этом конкретном плагине отвечает за вывод количества товаров в корзине. На худой конец проставить вопросу верные теги - далеео не php-шники работают с вордпорессом и тем более с woocommerce
sergey1989: в узбекистан вроде бы можно карту заказать. Снимать правда и переводы другим людям делать с нее не очень выгодно, но расплачиваться в магазине будете без комиссии.
дима кубитский: Сделайте заказ и посмотрите на отклики. То, что их там 20, так это половина автоматического спама, еще половина "сделаю за 10x от вашей цены". Ну и среди них может пара школьников, которые проект не осилят в должном качестве.