Care este cea mai bună practică pentru a asigura dvs. de facebook chatbot webhook?

voturi
1

Sunt în jur de joc cu dezvoltarea unei chatbot pe platforma facebook messenger. Am trecut prin documentul Facebook și nu a putut găsi cum să - mi protejeze webhookde apeluri aleatorii.

De exemplu, în cazul în care utilizatorii pot cumpăra umpluturi cu roboții mei, un atacator care stie userId cuiva poate începe plasarea comenzilor neautorizate prin efectuarea de apeluri către webhook meu.

Am câteva idei cu privire la modul de a proteja acest lucru.

1) API - ul meu pentru a trece în lista albă numai apelurile de la Facebook.
2) Creați ceva de genul CSRF token - uri cu apelurile postback.

Vreo idee?

Întrebat 14/04/2016 la 10:48
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
6

Facebook are desigur implementat deja un mecanism prin care se poate verifica dacă cererile făcute la adresa URL de apel invers sunt originale (orice altceva ar fi doar neglijență din partea lor) - vezi https://developers.facebook.com/docs/graph-api / webhooks # receiveupdates :

Cererea HTTP va conține un X-Hub-Signatureantet care conține SHA1 semnătura sarcinii utile cerere, folosind secretul ca aplicație cheie, și prefixate cu sha1=. Punctul final de apel invers poate verifica această semnătură pentru a valida integritatea și originea sarcinii utile

Vă rugăm să rețineți că calculul se face pe unicode scăpat versiune a sarcinii utile, cu cifre hexazecimale minuscule. Dacă tocmai ați calcula împotriva bytes decodificate, va termina cu o altă semnătură. De exemplu, șirul äöåar trebui să fie scăpat să \u00e4\u00f6\u00e5.

Publicat 14/04/2016 la 11:35
sursa de către utilizator

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