我无法弄清楚,随机的小睡眠延迟如何能够成为防止攻击者探测我们网站的解决方案.
这是他的代码片段:
<%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Security.Cryptography" %> <%@ Import Namespace="System.Threading" %> <script runat="server"> void Page_Load() { byte[] delay = new byte[1]; RandomNumberGenerator prng = new RNGCryptoServiceProvider(); prng.GetBytes(delay); Thread.Sleep((int)delay[0]); IDisposable disposable = prng as IDisposable; if (disposable != null) { disposable.Dispose(); } } </script> <html> <head runat="server"> <title>Error</title> </head> <body> <div> An error occurred while processing your request. </div> </body> </html>
解决方法
这是为了防止人们不断触发您的错误页面并利用
the recent ASP.NET vulnerability.他们需要大量的失败才能利用此漏洞利用.
睡眠延迟不会“阻止”访问您的页面.可以认为它类似于暴力破解密码;如果你需要在猜测之间等待5秒而不是5ms,你需要花一点时间才能找到pw.