В настоящее время я реализую 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 } }
Когда я подстановки платежа в нашей базе данных Я хочу изменить его на «подтвержденный».
Мне кажется, что это риск для безопасности, поскольку любой может отправлять фальшивые уведомления; кто-то, кто начал платеж, и хочет, чтобы этот платеж был подтвержден, может отправить этот запрос со статусом, установленным на «подтвержденный».
Мои вопросы:
- Должен ли я быть обеспокоены в первую очередь? Я мог проверить, откуда этот запрос, использовать Url уведомлений, что нелегко угадать и т. Д., Но я все равно не буду чувствовать себя комфортно в безопасности;
- Я всегда мог не доверять любому уведомлению и отправлять запрос статуса API при поступлении уведомления. Будет ли это хорошей практикой ?;
- Есть ли другие (лучшие) способы, которыми вы знаете, чтобы безопасно использовать эти уведомления?
Заранее благодарен!
Ах, вы правы .. Я забыл об этом, спасибо! – Graftak