使用System.Threading.Thread.Sleep(x)减慢机器人击中网站?

时间:2013-08-07 12:29:32

标签: c# asp.net security authentication bots

我今天发现了一些代码,这些代码已添加到网站的 登录后期操作 中。

System.Threading.Thread.Sleep(3000); //slow down bots

(值得注意的是,在强制用户点击页面之前,应用程序已经限制了失败的尝试。)

我想知道睡觉系统线程是否实际上正在做评论建议的内容,减慢机器人试图访问该网站的速度?

如果这确实减慢了机器人的速度,它是否足够有效,值得实施?

感谢。

2 个答案:

答案 0 :(得分:2)

Thread.Sleep在服务器软件中没有位置,并且它的使用会导致ThreadPool饥饿,导致其他无关的请求由于ThreadPool创建新线程的惰性而变得迟缓。

如果你真的想要无所事事,那就异步做吧。我不明白为什么这可能会有所帮助。如果您的网页请求缓慢投放,您会被某些搜索引擎标记下来。

答案 1 :(得分:1)

不,它不会。原因是机器人端的登录请求(可能)是异步的。发送请求后,机器人只需释放他的线程并继续运行,直到服务器响应。

另一方面,您正在锁定自己的线程,等待,而不是处理来自合法用户的其他请求。你基本上是在脚下射击自己。