我正在编写一些应用程序逻辑,可以识别对IIS 5 aspx页面发出的格式错误或恶意的http发布数据请求。终止错误请求的最有效方法是什么?
在识别出错误请求的时刻,将没有缓冲输出,并且C#函数退出堆栈很浅。
我现在的预感是,响应.End()及其线程终止异常的额外混乱可能在DOS攻击情况下比常规204“无内容”响应更具破坏性。
为了对我的网站正在做什么有所了解,所有aspx命中都会导致数据库查询活动,例如10毫秒到300毫秒,因此在0.5毫秒内响应格式错误的请求作为常规204回复代表了大量节省。
答案 0 :(得分:0)
我会创建一个自定义的IHttpModule并让它预处理所有aspx(或任何其他你想要的文件类型)。
如果您不熟悉IHttpModule,它们包含OnBeginRequest OnError等方法。您可以在web.config文件中注册它们。你可以轻松地拥有一个在请求开始时运行的自定义的东西,并让它寻找顽皮的位。