2012-10-24 5 views
3

У нас есть ссылка на главной странице и по соображениям безопасности необходимо, чтобы пользователь не нажимал на ссылку X раз в Y минут. Это кнопка ссылки на стороне сервера, и я могу вернуть информационное сообщение, если оно превышает пороговое значение.Ограничение не зарегистрированных пользователей нажмите на ссылку

Однако я не знаю, как я мог бы идентифицировать пользователя. Должен ли я использовать IP-адрес клиента? Могу ли я использовать сеанс для не зарегистрированного пользователя?

+2

Вы используете встроенное членство в webforms, которое поставляется с ASP.NET? –

+2

Это для удобства пользователя, или это проблема безопасности (например, DOS)? – JDB

+0

Независимо от того, что вы используете, имейте в виду, что он может быть подделан. Вы попадаете в гонку вооружений между вами и нападавшим. * Знай своего врага! * – ixe013

ответ

0

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

Однако, если пользователь является злонамеренным/умным, он может легко «потерять» сеанс, отказавшись принимать файлы cookie или загружая страницу без сеанса (в случае обработки сеанса без cookie).

Использование IP-адреса может работать, но поймите, что люди, использующие одну и ту же сеть, могут иметь один и тот же IP-адрес, поэтому вы можете случайно поразить несколько человек. Опять же, если вы пытаетесь предотвратить DDOS - это не будет иметь никакого значения, поскольку у них будет список IP-адресов для игры.

+0

Извините, что отредактировал - нажал неверную ссылку. :) – JDB

0

Я бы рекомендовал не использовать IP-адрес для идентификации пользователя. См.: Is it reliable to use the IP address to identify a user on your website?

Использование файла cookie часто является лучшим способом отслеживания пользователей. Но, очевидно, если это проблема безопасности, то это можно обойти.

Если вы имеете дело с потенциальной атакой на отказ от обслуживания, то я думаю, что единственным безопасным вариантом является требование, чтобы пользователь заходил в систему, прежде чем позволить ему/ей щелкнуть ссылку. Если это не серьезная проблема с безопасностью (это нормально для плохих актеров, чтобы обойти), тогда просто нужно использовать файлы cookie для вашего сайта и отслеживать клики таким образом.


EDIT
Основываясь на ваш комментарий, я думаю, что вам нужно реализовать безопасный и содержательный способ для пользователя, чтобы войти в систему. Нет универсального способа успешной и надежной идентификации одного пользователя (однако вы можете определить это). Вам нужно будет войти в систему и принять файлы cookie (чтобы вы могли отслеживать их сеанс).

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

Смежные вопросы