2013-06-21 2 views
0

Я разрабатываю приложение Shopify с Rails и использую строку запроса, чтобы определить, к какому магазину обращается к ней. Это кажется уязвимым, поскольку пользователи могут изменять URL-адрес для доступа к чужим настройкам.Shopify Rails App - Querystring Spoofing

Вот пример:

я нажимаю на ссылку Настройки на мое приложение и получить перенаправление на http://example-app.com/preferences?shop=example.myshopify.com и получить страницу настроек, относящихся к магазину: example.myshopify.com

Так что тут остановить пользователя от изменения запроса до http://example-app.com/preferences?shop=notmystore.myshopify.com и войти в магазин, который у них нет?

Должен ли я использовать аутентификационный камень (https://www.ruby-toolbox.com/categories/rails_authentication) и сделать каждый пользователь для создания имени пользователя и пароля для предотвращения подмены атак?

+0

У вас есть приложение для покупки, которое вы разработали, которое вы пытаетесь обеспечить? – Spencer

+0

@SpencerNorman благодарит за указание на двусмысленность. Я добавил параграф, чтобы объяснить это. Ура! –

ответ

1

Я нашел решение, чтобы всегда извлечь магазин URL из ваших переменных сеанса, а не из строки запроса:

session[:shopify].url

также убедиться, что это находится в верхней части каждого из контроллеров, чтобы обеспечить Shopify сессия существует:

around_filter :shopify_session

, как показано в этом: https://github.com/Shopify/shopify_app/blob/f9aca7dfc9c29350f7f2c01bb72f77a54ece2b77/lib/generators/shopify_app/templates/app/controllers/home_controller.rb

0

Этот вопрос может быть слишком локализован, но я постараюсь дать вам направление.

Если вы используете строку запроса как единственный метод проверки подлинности, то да, вы получите взломанные/подделанные и т. Д. Вам нужно сделать некоторую форму аутентификации. - Shopify предоставляет API, который, вероятно, может обрабатывать некоторые/большинство из них для вас.

https://github.com/shopify/shopify_api

1

Интересно. Там было живое производство Shopify App Store Apps, которое делало то, что вы делали Пол. Когда я нашел такое приложение, я сообщил Shopify, и они быстро спрятали приложение App. Он усвоил урок довольно быстро и, надеюсь, очень смутился.

счета Shopify Partner (бесплатно получить) предоставить вам хороший API токена и соответствующий секрет для вашего приложения, которые вы можете использовать, чтобы убедиться, когда вы торговец пытается получить доступ к App, что входящий магазин

  • фактически магазин, который установил приложение и,
  • они имеют право использовать ваше приложение

Вы действительно должны проверить это.