web应用程序中用户登录的意向睡眠调用-C#ASP.NET

本文关键字:调用 -C#ASP NET 应用程序 用户 登录 web | 更新日期: 2023-09-27 18:25:12

我想知道以下内容是否会产生我想要的效果。我正在为我的web应用程序(使用C#和ASP.NET)编写一个自定义登录页面,我想将以下内容添加到ButtonLogIn_Click()事件中:

System.Threading.Thread.Sleep(1000);

我的想法是有意放慢登录过程,不要让人注意到太长时间,而是要足够长的时间来防止机器可能的"枚举"或"蛮力"攻击。

在你看来,它会产生我想要的效果吗?还是只会减慢IIS的速度?

编辑:感谢大家的贡献!

web应用程序中用户登录的意向睡眠调用-C#ASP.NET

您可以检查请求的IP地址并维护失败尝试的列表。根据IP地址,您可以进行编码,以便在尝试过多时禁止特定的IP。

您也可以暂时阻止IP的请求。请参阅此链接:http://www.iis.net/download/dynamiciprestrictions

这可能只会让事情变得更糟,因为攻击者还会束缚你的线程。除非你添加其他安全措施,否则他仍然可以进行多次并发登录尝试。

我认为这根本没有帮助,因为请求(如果由脚本完成)将在Que中等待,这将使您的IIS遭受更大的痛苦,并且您在注意到问题后也更难终止进程。

老实说,这样做似乎不对。通常有适当的结构/控件可以让您实现这些基本的安全功能。什么都没有吗?如果你必须自己编写代码,那么值得一看的是,在多次尝试后(就像windows操作系统登录一样),线程可能会"休眠"。你需要记住这样一个事实:根据你的建议,即使成功登录也会减慢速度。例如,我认为如果你在尝试7或8次后使用thread.sleep,那么你更有可能在登录时使用暴力攻击。

http://msdn.microsoft.com/en-us/library/system.web.security.membership.maxinvalidpasswordattempts.aspx

可能的解决方案。就像我想的那样,外面不会有什么东西,这看起来确实有点奇怪。