Жетоны безопасности в формах - PullRequest
2 голосов
/ 07 августа 2011

Многие источники предлагают добавлять токены в формы, чтобы сделать отправку форм более безопасным.

Я добавил токены во все формы на форуме, и теперь у меня возникает следующая проблема:

некоторые пользователиоткрыть несколько вкладок браузера с различными темами форума.Форма ответа находится под каждой веткой.Таким образом, если пользователь открывает одну вкладку браузера с одним потоком, а затем другую вкладку с другим потоком, токен в первой форме больше не действителен, и пользователь получит ошибку, если попытается отправить первую форму.Решение для таких ситуаций - капча, но я не хочу усложнять для моих пользователей все.

Можете ли вы предложить какой-либо другой способ повышения безопасности форм?

Спасибо.

1 Ответ

2 голосов
/ 07 августа 2011

Почему токен становится недействительным при открытии новой вкладки? Пока токен генерируется из какого-то секрета, известного сеансу или вошедшего в систему пользователя, нет необходимости аннулировать его при открытии нового потока.

Вот один из способов сделать это:

  1. Когда пользователь входит в систему, создайте секрет, который хранится только в сеансе.
  2. В форме ветки обсуждения создайте хэш, составленный из секрета сеанса, рассматриваемой ветки форума и любой другой информации, которая может оказаться полезной в данной ситуации.
  3. Когда пользователь отправляет форму, создайте хеш из той же информации, что и выше, и посмотрите, соответствует ли она тому, что было отправлено в форме.

Наряду с обычными мерами по обеспечению безопасности сеанса (тайм-аут, сброс при входе в систему и т. Д.) Это должно обеспечить безопасность ваших форм без каких-либо неудобств для пользователей.

...