加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何锁定ASP.NET MVC中的路径?

发布时间:2020-12-15 20:28:37 所属栏目:asp.Net 来源:网络整理
导读:我第一次使用MVC 4来查看与MVC 3相比更改/添加/ etc的内容. 首先,我创建了一个空白的MVC 4 Web应用程序,并从头开始构建. 我注意到的第一件事是MVC 4中不同的事实是,以下web.config设置对网页的可访问性没有影响: configuration location path="" system.web
我第一次使用MVC 4来查看与MVC 3相比更改/添加/ etc的内容.

首先,我创建了一个空白的MVC 4 Web应用程序,并从头开始构建.

我注意到的第一件事是MVC 4中不同的事实是,以下web.config设置对网页的可访问性没有影响:

<configuration>
    <location path="">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
    </location>
    .....
</configuration>

回到MVC 3,上述授权设置将拒绝所有匿名用户访问该站点内的任何内容.但是,如果将相同的设置添加到MVC4 Web.config文件中,匿名者可以自由选择他/他选择的URL.

在MVC 4中需要做什么来锁定所有的路径,就像我在MVC 3中一样?

解决方法

看看 Securing your ASP.NET MVC 4 App and the new AllowAnonymous Attribute.

You cannot use routing or web.config files to secure your MVC application (Any Version). The only supported way to secure your MVC application is to apply the Authorize attribute…

Quote

MVC uses routes and does not map URLs to physical file locations like WebForms,PHP and traditional web servers. Therefore using web.config will definitely open a security hole in your site.

The product team will have a communication if this changes in the future,but for now it is without exception the rule.

例子:

从默认的ASP.Net MVC项目(Internet / Intranet)开始.

编辑web.config添加:

<location path="Home">
  <system.web>
    <authorization>
      <deny users="*">
    </authorization>
  </system.web>
</location>

运行该项目,默认情况下,您将使用默认路由/主页/索引,并看到内容,只需绕过web.config,而不更改默认模板.为什么?因为ASP.Net管道正在将请求的URL与web.config中指定的位置进行比较.然而,在授权事件在流水线中执行路由(默认路由或自定义路由)并允许访问所谓的限制区域之后.

另外,任何MVC重定向()也将绕过授权管道事件之后的路由再次发出相同的安全措施.

我不认为任何人都应该接受职业安全.第一次做到正确,不要懒惰,并使用不是专门用于特定技术的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读