ArtemPitov

SQL inject

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

ArtemPitov    386

Доброго времени суток господа!

 

Вот тут на выходных стало скучно и решил я полазить в дебри опенкарта, поискать "пробоины для уколов" и что то не могу найти =) 

не ужели все так хорошо или может где-то есть лазейки ? 

 

Давайте же немного по холиварим на тему безопасности ОП

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


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

Ну.. почему же

 

Если не сделать $this->db->escape, или (int) то возможны варианты

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


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

Доброго времени суток господа!

 

Вот тут на выходных стало скучно и решил я полазить в дебри опенкарта, поискать "пробоины для уколов" и что то не могу найти =) 

не ужели все так хорошо или может где-то есть лазейки ? 

 

Давайте же немного по холиварим на тему безопасности ОП

Да с безопасностью у opencart всё в порядке

Единая точка входа (правда видел пару модулей перлов со своей точкой входа, за такое по рукам надо давать), все "проверки" присутствуют. Вероятность закосячить минимальная.

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


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

это понятно, но для тут нужно быть совсем криворуким

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


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

Да с безопасностью у opencart всё в порядке

Единая точка входа (правда видел пару модулей перлов со своей точкой входа, за такое по рукам надо давать), все "проверки" присутствуют. Вероятность закосячить минимальная.

это какие модули если не секрет ?

 

Да, и зачем делать дополнительные точки входе, глупо же  

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


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

подпишусь

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


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

это какие модули если не секрет ?

 

Да, и зачем делать дополнительные точки входе, глупо же  

Ну.. не совсем глупо.. Если нужен, например "быстрый" обрезанный функционал

 

А пример.. Популярная всплывающая корзина.

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


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

Ну.. не совсем глупо.. Если нужен, например "быстрый" обрезанный функционал

 

А пример.. Популярная всплывающая корзина.

да, это я видел 

Но иногда эти не совсем нужные "рюшечки" могут выйти боком 

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


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

да, это я видел 

Но иногда эти не совсем нужные "рюшечки" могут выйти боком 

Обычно и выходят

Стандарты нельзя нарушать

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


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

Да, и зачем делать дополнительные точки входе, глупо же  

 

Это какую-то страницу выводить через отдельный входной скрипт глупо, а как, например, быть с кроном?

 

А на счёт уязвимостей: первое, что приходит в голову - полное отсутствие защиты от CSRF на стороне витрины (в админке - токены).

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


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

так и с кроном нужно быть уккарутным
Нормально если кронн запукать с wget
И проверять секруити код

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


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

так и с кроном нужно быть уккарутным

Нормально если кронн запукать с wget

И проверять секруити код

Я делаю похожим образом, но без wget, а ключ читаю из $argv.

 

Можно, кстати, ещё проверять, что php_sapi_name() содержит cli, но там есть нюансы с точным названием в разных окружениях.

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


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

ну.. как вариант..,

 

но по сути,  $argv. нужно распихивать в  массив $_POST $_GET

 

Но.. нужно подключать полноценно весь стартап

 

 

в 2.2. это стало немного проще и логичней

 

наличие - "клиента"

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


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

но по сути,  $argv. нужно распихивать в  массив $_POST $_GET

 

Зачем? Если там только ключ для защиты от внешних запросов, то его можно сразу проверить и всё.

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


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

А на счёт уязвимостей: первое, что приходит в голову - полное отсутствие защиты от CSRF на стороне витрины (в админке - токены).

ну если не проводить финансовые операции и хранить данные карточек то вполне сносно, но это магазин так что всякое может быть 

Можно что то свое написать с токенами солю и прочим ....

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


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

Зачем? Если там только ключ для защиты от внешних запросов, то его можно сразу проверить и всё.

а если тебе понадобятся другие модели?

Или как ты получишь массив конфига - сам его будешь ансериализовать?

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


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

так и с кроном нужно быть уккарутным

Нормально если кронн запукать с wget

И проверять секруити код

 

Это не нормально запускать крон через WGET

 

Погуглите cli opencart, не смешите людей.

Не нужно никаких проверочных кодов, достаточно запретить доступ к скрипту из мира.

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

 

Cli скритпы необходимы для длительных операций, которые находятся за рамками time limit 30. К сожалению многие писатели модулей в корне не понимают что такое отказоустойчивая безопасная система и как один писатель обработчика CSV не буду тыкать пальцем, требуют тайм лимит 200. я бы расстреливал за такое.

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


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

Что касается ответа на вопрос топик стартера - предлагаю немножко покурить вот тут.

Я залип сам часа на четыре когда первый раз увидел.

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


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

а если тебе понадобятся другие модели?

Или как ты получишь массив конфига - сам его будешь ансериализовать?

 

Видимо, мы о разном говорим. Я имел ввиду, что в $argv только ключ, который сразу проверяется и всё. А остальной код уже по потребностям и в том числе может и не сильно отличаться от обычного входного скрипта, если есть необходимость.

 

 

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

 

Ну да, например, отправка почтовой рассылки - как раз пример работы через фронтенд. Когда в базе всего сотня покупателей - всё отлично, но когда их там тысячи - это превращается в полнейший маразм.

 

Ну, и вообще, смысл крон задач как раз в том, чтоб они делались без какого-либо человеческого участия и фронтенд тут никак не клеится.

 

 

 

ну если не проводить финансовые операции и хранить данные карточек то вполне сносно, но это магазин так что всякое может быть 

Можно что то свое написать с токенами солю и прочим ....

Так в том и суть, что это магазин. В любом нормальном фреймворке это из коробки, а тут магазин и 10 лет движку, но до сих пор этого нет.

Тут же вопрос не только в финансовых операциях. Можно, например, подменить адрес покупателя и получить чужой заказ (а после отправки заказа исправить обратно и концы в воду).

Да и даже без таких изощрённых сценариев - просто возможность получения посторонними доступа к аккаунту покупателя - само по себе уже проблема, на которую нельзя закрывать глаза. Тем более, что на ОК делают не только классические магазины - например, для мультимерчанта это уже критическая проблема.

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


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

 

Видимо, мы о разном говорим. Я имел ввиду, что в $argv только ключ, который сразу проверяется и всё. А остальной код уже по потребностям и в том числе может и не сильно отличаться от обычного входного скрипта, если есть необходимость.

 

 

 

Ну да, например, отправка почтовой рассылки - как раз пример работы через фронтенд. Когда в базе всего сотня покупателей - всё отлично, но когда их там тысячи - это превращается в полнейший маразм.

 

Ну, и вообще, смысл крон задач как раз в том, чтоб они делались без какого-либо человеческого участия и фронтенд тут никак не клеится.

 

 

 

Так в том и суть, что это магазин. В любом нормальном фреймворке это из коробки, а тут магазин и 10 лет движку, но до сих пор этого нет.

Тут же вопрос не только в финансовых операциях. Можно, например, подменить адрес покупателя и получить чужой заказ (а после отправки заказа исправить обратно и концы в воду).

Да и даже без таких изощрённых сценариев - просто возможность получения посторонними доступа к аккаунту покупателя - само по себе уже проблема, на которую нельзя закрывать глаза. Тем более, что на ОК делают не только классические магазины - например, для мультимерчанта это уже критическая проблема.

 

Не готов с вами вступать в дискуссии, так как у вас такое количество HOW TO вопросов присутствует, что складывается ощущение что в гугле забанили!

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


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

Не готов с вами вступать в дискуссии, так как у вас такое количество HOW TO вопросов присутствует, что складывается ощущение что в гугле забанили!

 

Сколько пафоса :)

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

 

Я высказал свою точку зрения. Если кому-то есть что добавить или возразить, то вперёд - для этого форумы и существуют (а не для того, чтоб повышать свою самооценку).

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


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

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

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

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

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

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

Войти

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

Войти


  • Последние посетители   0 пользователей онлайн

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