我怎么能不发送响应在mvc4
本文关键字:响应 mvc4 怎么能 | 更新日期: 2023-09-27 18:11:58
安全工程师要求在某些情况下应用程序(MVC4 c#)不应该发送响应。
这样,攻击者就无法提取有关服务的任何信息(例如,如果我们发送通常的401未经授权,那么攻击者就知道他们的凭据不起作用)。
我怎样才能做到这一点?
UPDATE这不是一个讨论"做还是不做"决定的问题。我需要知道,如果它是技术上可能实现这一结果与ASP。. NET c# MVC
从您的操作返回null
或EmptyResult()
。
…但这似乎很可疑。您始终可以控制返回给客户端的内容,发送HTTP 401是完全可以接受的。在HTTP上不存在暴力破解的风险,因为这实际上是不可能的。你所描述的听起来像是货物崇拜的安全。
这样做
public ActionResult IReturnNothing
{
return new EmptyResult();
}
更多:ASP。返回void
好吧,经过一段时间后,我确实找到了一个解决方案,不幸的是,不是理想的。我还在调查中,目前还不能接受,但有一种方法可以这样做:
var wrapper = (HttpContextWrapper)this.HttpContext;
FieldInfo ctx = typeof(HttpContextWrapper).GetField("_context", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
var context = (HttpContext)ctx.GetValue(wrapper);
FieldInfo response= typeof(HttpContext).GetField("_response", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
response.SetValue(context, null);
但是,这会导致整个应用程序池在System.Web.HttpRuntime.ProcessRequestNotificationPrivate
中崩溃,您需要在IIS中设置一个非常高的崩溃容忍度,以允许它不关闭。但是服务器没有响应,客户端在等待