Qual è la prassi migliore per garantire la sua facebook chatbot webhook?

voti
1

Sto giocando intorno con lo sviluppo di una chatbot su piattaforma Facebook Messenger. Sono andato attraverso il documento Facebook e non sono riuscito a trovare il modo di proteggere la mia webhookdalle chiamate casuali.

Ad esempio, se gli utenti possono acquistare stoffe con i miei bot, un attaccante che conosce userId di qualcuno in grado di iniziare a posizionare gli ordini non autorizzate effettuando chiamate al mio webhook.

Ho diverse idee su come proteggere questo.

1) whitelist mia API per chiamate solo da facebook.
2) creare qualcosa di simile CSRF token con le chiamate di postback.

Qualche idea?

È pubblicato 14/04/2016 alle 10:48
fonte dall'utente
In altre lingue...                            


1 risposte

voti
6

Facebook ha ovviamente già implementato un meccanismo attraverso il quale è possibile controllare se le richieste fatte al tuo URL callback sono genuini (tutto il resto sarebbe solo negligenza da parte loro) - vedi https://developers.facebook.com/docs/graph-api / webhooks # receiveupdates :

La richiesta HTTP conterrà un X-Hub-Signaturecolpo di testa che contiene la firma SHA1 della richiesta payload, utilizzando il segreto app come la chiave, e con prefisso sha1=. Il callback endpoint in grado di verificare questa firma per convalidare l'integrità e l'origine del carico utile

Si prega di notare che il calcolo viene effettuato sulla unicode sfuggito versione del payload, con basse cifre esadecimali caso. Se hai appena calcolare contro i byte decodificati, vi ritroverete con una firma diversa. Ad esempio, la stringa äöådeve essere sfuggito a \u00e4\u00f6\u00e5.

Risposto il 14/04/2016 a 11:35
fonte dall'utente

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