Hva er den beste praksis for å sikre din facebook chatbot webhook?

stemmer
1

Jeg spiller rundt med å utvikle en chatbot på facebook messenger-plattformen. Jeg gikk gjennom Facebook dokumentet og kunne ikke finne hvordan du kan beskytte min webhookfra tilfeldige samtaler.

For eksempel, hvis brukerne kan kjøpe materialer med mine roboter, en angriper som vet noens userId kan begynne å plassere uautoriserte ordre ved å ringe til min webhook.

Jeg har flere ideer om hvordan du kan beskytte dette.

1) Hviteliste min api bare samtaler fra facebook.
2) Lag noe sånt CSRF tokens med sendings samtaler.

Noen ideer?

Publisert på 14/04/2016 klokken 10:48
kilden bruker
På andre språk...                            


1 svar

stemmer
6

Facebook har selvfølgelig allerede implementert en mekanisme som du kan sjekke om forespørsler til din tilbakeringingswebadresse er ekte (alt annet ville bare være uaktsomhet fra deres side) - se https://developers.facebook.com/docs/graph-api / webhooks # receiveupdates :

HTTP-forespørselen vil inneholde en X-Hub-Signatureheader som inneholder SHA1 signaturen til forespørselen nyttelast, ved hjelp av app hemmelig som nøkkelen, og prefikset sha1=. Din tilbakeringing endepunkt kan verifisere denne signaturen til å validere integriteten og opprinnelsen til nyttelast

Vær oppmerksom på at beregningen er gjort på rømt unicode versjon av nyttelast, med små bokstaver heksadesimale sifre. Hvis du bare regne mot de dekodede bytes, vil du ende opp med en annen signatur. For eksempel strengen äöåskal flyktet til \u00e4\u00f6\u00e5.

Svarte 14/04/2016 kl. 11:35
kilden bruker

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