我有问题,请帮忙!
我们的网站最近受到 Slow HTTP POST DOS 攻击。当您的服务器收到大量传入连接并长时间保留它们时,因为发送者发送信息非常慢并且服务器无法服务真实用户的请求 - 拒绝服务。
所以我决定拒绝此类 POST 请求:
void Application_BeginRequest(object sender, EventArgs e)
{
if ( _my_condition_here_ )
{
_reject_the_request_by_dropping_connection_
}
}
问题是我无法在asp.net中删除HTTP连接:
Response.End(), throw new Exception(), even Thread.CurrentThread.Abort()
不要关闭连接。当发送者发送所有虚假数据时,它会等待,然后用“500 服务器错误”之类的东西来回答它。在这种情况下,缓慢的 POST 攻击仍然会成功。
如何才能断开连接?或者也许 IIS 7 中有一些设置或模块可以为我做到这一点?