Насколько безопасны скрытые токены аутентификации в веб-интерфейсе oauth клиентов твиттера? - PullRequest
1 голос
/ 03 сентября 2010

Предполагая, что вы уже создали клиентское приложение oauth в твиттере, вы можете перейти к http://twitter.com/apps для управления ими. Когда я просматривал исходные HTML-страницы, я вижу, что они используют скрытый параметр формы, называемый маркером подлинности, в своих определениях формы.

<form method="post" id="sign_out_form" action="/sessions/destroy" style="display:none;"> 
<input name="authenticity_token" value="18c9957agd7ysdjgsgd87sgdjs" 
  type="hidden"/> 
</form>

<form action="/oauth_clients/regenerate_keys/299120" id="regenerate_keys_form" 
 method="post" style="float: right;">  
<input name="authenticity_token" type="hidden" 
 value="18c9957agd7ysdjgsgd87sgdjs" />
 <input type="submit" id="regenerate_keys" value="Reset Consumer Key/Secret"     
class="btn"/> 
</form> 

Учитывая, что вся веб-страница доступна через SSL, что является основой для этих токенов подлинности? Они никогда не меняются; таким образом, они не одноразовые. Может кто-нибудь просветить меня об их полезности?

1 Ответ

4 голосов
/ 03 сентября 2010

Это стандартная функция Rails (в которой написан интерфейс Twitter).Маркер подлинности представляет собой случайную строку, генерируемую за сеанс, и используется для защиты от CSRF-атак .Вы можете прочитать больше о векторе атаки и о том, почему Rails использует токен аутентификации в Руководство по безопасности Rails .Приложение, обслуживаемое полностью по протоколу SSL, не предотвратит атаку CSRF;цель состоит в том, чтобы просто сделать так, чтобы при выполнении POST / PUT / DELETE для ресурса это делалось из формы, сгенерированной приложением, и которую пользователь видел в некоторой форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...