Ich implementiere derzeit die BitPay API (in PHP). Alles funktioniert gut, aber ich bin ein bisschen besorgt über ein mögliches Sicherheitsrisiko beim Empfang von Benachrichtigungen.BitPay API-Benachrichtigungen: Sicherheitsrisiko?
Die BitPay API sendet diese Meldungen mit Status-Updates eine POST Anfrage zu einer bestimmten Benachrichtigung URL enthält eine JSON-String wie folgt aus:
{ "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 } }
Wenn ich die Zahlung in unserer Datenbank nachzuschlagen Ich möchte es auf "bestätigt" ändern.
Es scheint mir ein Sicherheitsrisiko, da jeder gefälschte Benachrichtigungen senden kann; jemand, der die Zahlung gestartet hat und möchte, dass die Zahlung bestätigt wird, kann diese Anfrage mit dem Status "bestätigt" senden.
Meine Fragen:
- Sollte ich in erster Linie besorgt sein? Ich könnte überprüfen, woher die Anfrage stammt, eine Benachrichtigungs-URL verwenden, die nicht leicht zu erraten ist etc., aber ich würde mich immer noch nicht sicher fühlen;
- Ich könnte immer jede Benachrichtigung misstrauen und eine Statusanfrage an die API senden, wenn eine Benachrichtigung eingeht. Wäre das eine gute Praxis?
- Gibt es andere (bessere) Möglichkeiten, wie Sie diese Benachrichtigungen sicher verwenden können?
Vielen Dank im Voraus!
Ah hast du recht .. ich habe das übersehen, danke! – Graftak