Was ist die beste Praxis durch facebook chatbot Webhook zu sichern?

stimmen
1

Ich spiele um mit einer chatbot auf Facebook Messenger - Plattform zu entwickeln. Ich ging durch das Dokument Facebook- und nicht finden kann , wie meine schützen webhookaus zufälligen Anrufen.

Zum Beispiel, wenn User stopft meine Bots kaufen, einen Angreifer, der jemandes userId kennt, kann Platzierung nicht autorisierte Aufträge, indem sie Anrufe zu meinem Webhook starten.

Ich habe einige Ideen, wie diese zu schützen.

1) Whitelist mein api nur Anrufe von Facebook.
2) Erstellen Sie so etwas wie CSRF mit den Postbacks Anrufe Token.

Irgendwelche Ideen?

Veröffentlicht am 14/04/2016 um 10:48
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
6

Facebook hat natürlich implementiert bereits einen Mechanismus , mit dem Sie überprüfen können , ob Anfragen an Ihren Rückruf - URL gemacht echt sind (alles andere nur fahrlässig wäre) - siehe https://developers.facebook.com/docs/graph-api / webhooks # receiveupdates :

Die HTTP - Anforderung wird ein enthält X-Hub-SignatureHeader, der die SHA1 Signatur des Anfrage - Payload enthält, die App secret als Schlüssel, und mit dem Präfix sha1=. Ihr Rückruf - Endpunkt kann diese Signatur verifiziert die Integrität und den Ursprung der Nutzlast zu validieren

Bitte beachten Sie, dass die Berechnung auf der gemacht wird entkam Unicode - Version der Nutzlast, mit Kleinbuchstaben hexadezimale Ziffern. Wenn Sie nur gegen die entschlüsselten Bytes berechnet werden , werden Sie mit einer anderen Signatur am Ende. Zum Beispiel kann die Zeichenfolge äöåsollte zu entkommen \u00e4\u00f6\u00e5.

Beantwortet am 14/04/2016 um 11:35
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more