Является ли использование длинной строки в переменной GET безопасным способом идентификации пользователя? - PullRequest
1 голос
/ 15 октября 2011

Я делаю приложение Twilio. Twilio может отправить запрос на сервер после завершения вызова, но он не может быть связан с вошедшим в систему пользователем моего веб-сайта, поскольку Twilio делает независимый запрос. Если бы я сказал Twilio опубликовать что-то на

example.com/response.html?token=ba38pgab38g4agdusoehle8qihxs&data=somedata

и затем использовать этот токен для проверки того, что этот запрос Twilio связан с пользователем, это безопасно?

Я уже видел эту технику в формах сброса пароля. В электронном письме будет ссылка, и личность пользователя будет подтверждена только с помощью токена.

Безопасно ли делать это в моем приложении Twilio? Есть какие-нибудь ошибки, на которые стоит обратить внимание?

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

Это так же безопасно, как и любой другой запрос к вашему серверу от удаленного HTTP-клиента (например, браузера).Если вы хотите убедиться, что никто между серверами Twilio и вашим не может прочитать запрос, вам следует использовать HTTPS / SSL.

Для этого варианта использования, вероятно, лучше связывать значение CallSid, ​​которое отправляется с каждым запросом.на ваш сервер с пользователем в вашей системе.Когда сработает StatusCallback для завершенного вызова, найдите пользователя, связанного с этим вызовом, и действуйте соответствующим образом.

1 голос
/ 16 октября 2011

Некоторые протоколы единого входа на основе браузера, такие как OpenID и SAML, используют похожую технику для отслеживания состояния при перенаправлении между сайтом, на который вы пытаетесь пройти аутентификацию, и сайтом, выполняющим аутентификацию. Я думаю, что техника достаточно хороша для того, чего вы хотите достичь.

Я не знаком с Twilio, но буду осторожен при использовании для идентификации пользователя . Генерация уникального кода (он же nonce) для каждого запроса и передача Twilio этого nonce обратно в ответе будет более безопасным, поскольку он идентифицирует только конкретный запрос . Хотя это может быть излишним.

...