ASP.NET MVC应用程序处理程序映射和模块的性能和安全性

我刚读了一篇有趣的文章.基本上说,你应该通过两种方式来调整每个应用程序的IIS设置:

>处理程序映射 – 删除应用程序未使用的所有内容
>模块 – 删除应用程序未使用的所有内容

那么我现在开发ASP.NET已经有一段时间了,甚至在工作中,我们从来没有在生产环境中做到这一点.我理解所提出的理论优势 – 最大限度地减少应用程序(安全性)的“表面”,并提高性能.但是,如果您在现实生活中做到这一点(真正的客户项目,而不是概念验证项目),我真的很好奇.这是什么缺点(可维护性可能?).最重要的问题是值得吗?例如,表现增益是否可见?

另外,如果你认为这是一个很好的做法,请提供一些好的和一致的方式(或指出我的教程),你怎么做这个过程 – 你如何决定什么留下什么删除.

例如,什么是ASP.NET MVC 3应用程序的最小但工作集,它使用自定义身份验证(基于会话,不依赖于Forms身份验证,Windows身份验证等),没有Web服务和类似功能

编辑

我发现这篇文章http://madskristensen.net/post/Remove-default-HTTP-modules-in-ASPNET.aspx

在其中,Scott Guthrie说:

一般来说,您可以使用这种方法获得一些非常小的性能胜利 – 尽管我可能会建议不要这样做.原因是ASP.NET(形成身份验证,角色,缓存等)的某些功能当然会在您移除所依赖的模块后停止工作.试图弄清楚为什么发生这种情况常常会令人困惑.

但是还没有测量,实践(我不是真的相信“你以后可以惊讶”的说法:)

解决方法

对于什么值得,Security Best Practices for IIS 8有这样的:
  • Install only the IIS modules you need.

    IIS 8 is composed of more than 40 modules,which allow you to add modules you need and remove any modules you don’t need. If you
    install only the modules you need,you reduce the surface area that is exposed to potential attacks.

  • Periodically remove unused or unwanted modules and handlers.

    Look for modules and handlers that you no longer use and remove
    them from your IIS installation. Strive to keep your IIS surface
    area as small as possible.

IIS Modules Overview还具有IIS模块引用,并为每个模块提供了一个名为“删除此模块的潜在问题”部分.例如,如果删除了DefaultAuthentication模块:

Some ASP.NET features may not work for anonymous requests if ASP.NET authentication mode is Forms. Also,DefaultAuthentication.OnAuthenticate event will not be raised.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...