C# 如何唯一地选择尝试在internet上登录10次以上的用户

C# 如何唯一地选择尝试在internet上登录10次以上的用户,c#,asp.net,security,c#-4.0,C#,Asp.net,Security,C# 4.0,我目前开发了一个网站,我的用户必须登录该网站。当用户到来时,我为他/她创建一个会话,并为他/她保存不成功登录的次数+时间。当用户尝试5次登录时,我向他显示验证码,并强制他输入验证码代码。现在我希望当用户尝试10次以上时,在一个简单的HTML文件中重定向他,向他显示你被禁止2小时。问题是我如何在internet上选择唯一的用户?关于用户的哪些信息可以一起选择唯一的用户?考虑到站点中的用户名是唯一的,您可以使用用户名和会话的组合来阻止特定用户。 如果用户在不同的机器上使用相同的用户名10次,则可能会

我目前开发了一个网站,我的用户必须登录该网站。当用户到来时,我为他/她创建一个
会话
,并为他/她保存不成功登录的次数+时间。当用户尝试5次登录时,我向他显示
验证码
,并强制他输入
验证码
代码。现在我希望当用户尝试10次以上时,在一个简单的
HTML
文件中重定向他,向他显示
你被禁止2小时
。问题是我如何在internet上选择唯一的用户?关于用户的哪些信息可以一起选择唯一的用户?

考虑到站点中的用户名是唯一的,您可以使用用户名和会话的组合来阻止特定用户。
如果用户在不同的机器上使用相同的用户名10次,则可能会被阻止。

您要求用户登录,因此听起来您已经为每个用户提供了唯一的登录ID,您最关心的是防止恶意用户破坏您的系统,锁定不同的有效用户,同时阻止他们破解密码。对吗


您不能绝对肯定地阻止恶意用户使用您的入侵保护方案干扰其他用户。如果你看到有人试图强行使用另一个用户的密码,那么你可以锁定该IP地址一段时间。。。或者可能只是该帐户的IP地址。。。但是,您可能会遇到NAT网关共享IP后面的恶意用户导致同一网关后面的所有其他用户被锁定的风险。发送到服务器的任何信息都可能被欺骗,因此这是一种平衡行为。用户ID和IP地址的组合在代表一个独特的个人方面并不可靠,但足以防止最常见的滥用。

可靠吗?祝你好运。使用正确浏览器的用户是无法伪造的。嗯,除了IP禁令,但即使这样也会给代理、匿名者带来麻烦……基本上,任何共享IP的人都有一个“T”。不相关的-所以你是对的,但它可以降低攻击的风险。不是吗?@Kerezo它还可以降低许多真正用户登录到你的站点的风险。依我看,最好只跟踪帐户记录上的登录尝试,这样你就可以检测暴力攻击。@Kerezo是的,但你问的是“互联网上唯一的用户”,暗示的是一个唯一的真人。“忘记密码”在帐户级别起作用-很好;所以只需使用它,并计算每个帐户失败的尝试次数。您在这里的意图可能对真实用户(代理等)造成的不便远大于对攻击者造成的不便;知识渊博的攻击者将拥有工具(不同的代理等)来轻松解决此问题。真正的用户不会。你惩罚真正的人,并不会给你的攻击者带来不便。是的,但如果用户是坏人,他/她尝试不存在的用户名,我能做什么?其他恶意攻击都无法事先确定,必须处理最可能的攻击。