Twilio разработчик евангелист здесь.
Вы можете абсолютно validate that a webhook is a genuine Twilio request.
С каждым запросом веб-камеры Twilio отправляет заголовок X-Twilio-Signature
с подписью в нем. Подпись создаются с помощью следующего метода:
- Twilio монтирует свою просьбу к приложению, включая окончательный URL и любой POST полей (если запрос является POST).
- Если ваш запрос POST, Twilio берет все поля POST, сортирует их по алфавиту по их имени и объединяет имя и значение параметра в конец URL-адреса (без разделителя).
- Twilio берет результирующую строку (полный URL-адрес с строкой запроса и всеми параметрами POST) и подписывает ее с использованием HMAC-SHA1 и вашего AuthToken в качестве ключа.
Для проверки подписи, необходимо:
- Возьмите полный адрес URL запроса вы укажете свой номер телефона или приложение, из протокола (HTTPS ...) через конец строки запроса (все после?).
- Если запрос является POST, отсортируйте все параметры POST в алфавитном порядке (используя порядок сортировки с учетом регистра в стиле Unix).
- Перейдите по отсортированному списку параметров POST и добавьте имя и значение переменной (без разделителей) в конец строки URL .
- Подпишите итоговую строку с помощью HMAC-SHA1, используя ваш AuthToken в качестве ключа (помните, что дело вашего AuthToken имеет значение!).
- Base64 кодирует полученное значение хэша.
- Сравните ваш хэш с нашим, представленный в заголовке X-Twilio-Signature. Если они совпадут, тогда вам хорошо идти.
Это все описано, с примерами, на нашем Security page. Если вы используете один из наших official helper libraries, тогда будет метод проверки этого уже встроенного.
В URL-адресе, который опубликован WebHook, вы можете добавить секретный ключ хеширования и подтвердить его значение? Например. http: // your-api/webhooks/twilio? hash = abc123 – G0dsquad