在ASP.NET MVC中加载从路由参数获取其名称的部分视图是否安全?

时间:2012-07-16 16:22:44

标签: c# asp.net-mvc

我想知道从路由参数加载部分视图是否安全?

例如,使用以下网址

mydomain.com/home/services/selling

我希望视图加载名为selling

的部分视图

这是视图中的代码:

string SubPage = ViewBag.SubPage;
@Html.Partial("~/Views/Pages/Services/"+SubPage)

这是安全还是我应该加一些消毒?

其他信息

我不担心用户是否访问服务下的视图,因为所有这些视图都已通过网站导航访问。

我更感兴趣的是如果可以设置子页面,以便从~/Views/Pages/Services/文件夹外部加载视图,就像在Account文件夹中的视图一样。

1 个答案:

答案 0 :(得分:2)

如果某人的行为可以修改SubPage,使其在~/Views/Pages/Services/下显示一个页面,导致他们获得不应被允许的路径,则会造成伤害。

如果您使用的是通用访问控制模型,可以验证是否允许用户执行给定的控制器操作,而无需额外检查是否允许SubPage进行控制,则可能会发生这种情况。