За последние 24 часа нас посетили 22255 программистов и 1029 роботов. Сейчас ищут 616 программистов ...

Безопасность при работе с платежной системой

Тема в разделе "PHP для новичков", создана пользователем AlexBV, 26 сен 2019.

  1. AlexBV

    AlexBV Новичок

    С нами с:
    18 окт 2016
    Сообщения:
    25
    Симпатии:
    1
    Добрый день. Начал разбираться с платежными системами. В качестве первой выбрана была яндекс форма для приема платежей. У меня вопрос возник по самому принципу работы. Пользователь перешел на форму оплаты, оплатил. Платежная система отправляет запрос об успешной оплате обратно на сайт и передают например id заказа. А что мешает злоумышленнику отправить такой же запрос (например через cUrl) с id своего заказа, не оплачивая заказ? Или я в алгоритме оплаты чего-то не учел? Конечно как вариант можно помимо мониторинта сайта, где будет отображаться статус заказа (в админ панели например) еще и проверять каждый раз яндекс кошелек или почту, на которую придет емейл от яндекса, но это не совсем удобно.
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Там много параметров возвращается, в том числе и прошла оплата или нет. Проверяйте этот параметр, а не просто id.
     
  3. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Мешает многое.

    Ты должен обработать нормально данные и записать их например в бд
    Время транзакции, айди, сумму, статус
    Сверить полученные данные от сервера оплаты и установить новый статус заказу, не забыв при этом проверить его существование.

    Сервер оплаты не только и не зря!!! отправляет тебе айди заказа с другой информацией, который ты просто обязан проверять на своем сервере.

    Тогда можно вообще не переживать, даже если этот самый сервер оплаты хакнут.
     
    Roman __construct нравится это.
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Roman __construct нравится это.
  5. AlexBV

    AlexBV Новичок

    С нами с:
    18 окт 2016
    Сообщения:
    25
    Симпатии:
    1
    Спасибо вам всем большое за ответы, вникаю потихоньку. Скажите, какие, на данный момент, оптимальные платежные системы для подключения к сайту? Или может быть агрегаторы? К примеру, если сайт: интернет-магазин или пиццерия, с возможностью доставки и онлайн оплаты.
     
    AlexProg нравится это.
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Обычно между сайтом и сервисом к каждому запросу прилагается секретный ключ. Запрос можно подделать, только украв этот ключ из сервера или взломав аккаунт на сервисе.
    Кроме того, сервисы предоставляют API для доступа к списку транзакций. То есть получив входящий id, скрипт может дополнительно сделать запрос к платежной системы для проверки, существует ли такой платеж и какой у него статус.
    Это всё в общих чертах.
     
    Roman __construct нравится это.
  7. AlexBV

    AlexBV Новичок

    С нами с:
    18 окт 2016
    Сообщения:
    25
    Симпатии:
    1
    Спасибо, хотябы в общих чертах понял, как все работает. Но походу полностью разобраться поможет только реальный проект. Можете посоветовать, какие платежные системы и сервисы, на данный момент, лучше всего использовать? Вы сами какие обычно подключаете?
     
  8. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Насколько я понимаю там должна быть система по типу jwt с секретными токенами и пр. Т.е. не все так просто - бомбить сайты с яндекс-кассой так вот легко не получится)))
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Последний раз подключал Stripe, очень удобная и навороченая система.
     
  10. AlexBV

    AlexBV Новичок

    С нами с:
    18 окт 2016
    Сообщения:
    25
    Симпатии:
    1
    Спасибо, жаль только докоментация у них англоязычная. Я с английским пока не очень.
    Скажите, а яндекс касса вообще популярна или у нее есть какие-то недостатки?
    --- Добавлено ---
    В каком-то смысле жаль))))
     
  11. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Плохо документацию читали... В каждой эпс есть подпись. В ЯД вот так

    PHP:
    1. if ($_POST["sha1_hash"] == $sign_hash)
    2. {
    $sign_hash сами сгенерируйте, и помните там один из параметров секретный ключ. Ключ этот знаете только вы :)
    Подпись ваша равна той что ЯД прислал? - пополняем. Нет? - Error!
     
  12. Кирилл22

    Кирилл22 Новичок

    С нами с:
    17 сен 2017
    Сообщения:
    2
    Симпатии:
    0
    Я работаю с betatransfer-merchant с ними никаких проблем нет, удобная мерчант форма, оперативные выплаты
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    какой-то дешманский лендинг на конструкторе сайтов без реквизитов фирмы, уж не лохотрон ли?