我怎么能不发送响应在mvc4

本文关键字:响应 mvc4 怎么能 | 更新日期: 2023-09-27 18:11:58

安全工程师要求在某些情况下应用程序(MVC4 c#)不应该发送响应。

这样,攻击者就无法提取有关服务的任何信息(例如,如果我们发送通常的401未经授权,那么攻击者就知道他们的凭据不起作用)。

我怎样才能做到这一点?

UPDATE这不是一个讨论"做还是不做"决定的问题。我需要知道,如果它是技术上可能实现这一结果与ASP。. NET c# MVC

我怎么能不发送响应在mvc4

从您的操作返回nullEmptyResult()

…但这似乎很可疑。您始终可以控制返回给客户端的内容,发送HTTP 401是完全可以接受的。在HTTP上不存在暴力破解的风险,因为这实际上是不可能的。你所描述的听起来像是货物崇拜的安全。

这样做

public ActionResult IReturnNothing
{
    return new EmptyResult();
}

更多:ASP。返回void

的。MVC控制器动作

好吧,经过一段时间后,我确实找到了一个解决方案,不幸的是,不是理想的。我还在调查中,目前还不能接受,但有一种方法可以这样做:

    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中设置一个非常高的崩溃容忍度,以允许它不关闭。但是服务器没有响应,客户端在等待