2016-05-27 16 views
0

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:

  1. 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;
  2. Ich könnte immer jede Benachrichtigung misstrauen und eine Statusanfrage an die API senden, wenn eine Benachrichtigung eingeht. Wäre das eine gute Praxis?
  3. Gibt es andere (bessere) Möglichkeiten, wie Sie diese Benachrichtigungen sicher verwenden können?

Vielen Dank im Voraus!

Antwort

0

Alle Ratschläge sie in ihre docs ist suchen sind ...

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

Wir würden Ihnen raten, einen Nicht-Standard-Port zu öffnen und diesen Port im notificationURL angeben statt Weiße Auflistung BitPay IP Adressen, da sie ohne Vorankündigung geändert werden können. Da wir noch nicht diese Benachrichtigungen signieren, sollten sie outright nicht vertraut werden. Wir empfehlen, diese Benachrichtigungen gegen unsere API zu überprüfen, wenn sie empfangen werden, um sicherzustellen, dass die präsentierten Daten authentisch sind. Wenn beispielsweise eine bezahlte Rechnung eingeht, sollten Sie eine Anfrage an unsere API senden, um den Status dieser Rechnung zu überprüfen, um sicherzustellen, dass tatsächlich bezahlt wurde. Dies bietet zusätzliche Sicherheit in Überprüfung bezahlter Bestellungen.

+0

Ah hast du recht .. ich habe das übersehen, danke! – Graftak

Verwandte Themen