2016-05-27 3 views
0

В настоящее время я реализую API BitPay (в PHP). Все работает нормально, но я немного обеспокоен возможной угрозой безопасности при получении уведомлений.Уведомления BitPay API: риск для безопасности?

BitPay API отправляет эти уведомления с обновлениями статуса, используя запрос POST для данного уведомления URL, содержащего строку JSON так:

{ "id": "123BitPayInvoiceID", "url": "https://bitpay.com/invoice?id=123BitPayInvoiceID", "posData": "6G38ZL", "status": "paid", "btcPrice": "0.0512", "price": 29.14, "currency": "USD", "invoiceTime": 1407881291063, "expirationTime": 1407882191063, "currentTime": 1407882058099, "btcPaid": "0.0512", "rate": 568.69, "exceptionStatus": false, "bitpay": { "id": "123BitPayInvoiceID", "url": "https://bitpay.com/invoice?id=123BitPayInvoiceID", "posData": "{\"paymentID\":\"123PAYMENTID\",\"orderID\":\"123ORDERID\"}", "status": "confirmed", "btcPrice": "0.0512", "price": 29.14, "currency": "USD", "invoiceTime": 1407881291063, "expirationTime": 1407882191063, "currentTime": 1407882058099, "btcPaid": "0.0512", "rate": 568.69, "exceptionStatus": false } }

Когда я подстановки платежа в нашей базе данных Я хочу изменить его на «подтвержденный».

Мне кажется, что это риск для безопасности, поскольку любой может отправлять фальшивые уведомления; кто-то, кто начал платеж, и хочет, чтобы этот платеж был подтвержден, может отправить этот запрос со статусом, установленным на «подтвержденный».

Мои вопросы:

  1. Должен ли я быть обеспокоены в первую очередь? Я мог проверить, откуда этот запрос, использовать Url уведомлений, что нелегко угадать и т. Д., Но я все равно не буду чувствовать себя комфортно в безопасности;
  2. Я всегда мог не доверять любому уведомлению и отправлять запрос статуса API при поступлении уведомления. Будет ли это хорошей практикой ?;
  3. Есть ли другие (лучшие) способы, которыми вы знаете, чтобы безопасно использовать эти уведомления?

Заранее благодарен!

ответ

0

Все советы вы ищете в их документы ...

https://bitpay.com/docs/invoice-callbacks

Мы рекомендуем Вам открыть нестандартный порт и указать, что порт в notificationURL вместо белый список BitPay IP адресов, поскольку они могут быть изменены без предварительного уведомления. Поскольку мы еще не подписываем эти уведомления, им не следует доверять . Мы рекомендуем проверять эти уведомления на наш API , когда они получены, чтобы убедиться, что представленные данные являются подлинными. Например, когда вы получаете оплаченное уведомление, вы должны сделать запрос к нашему API, чтобы проверить статус этого счета, чтобы сделать уверенным, что он был фактически оплачен. Это обеспечивает дополнительную безопасность в проверке платных заказов.

+0

Ах, вы правы .. Я забыл об этом, спасибо! – Graftak

Смежные вопросы