Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将asp.net mvc URL更改安全权限授予用户_Asp.net_Angularjs_Asp.net Mvc_Security - Fatal编程技术网

将asp.net mvc URL更改安全权限授予用户

将asp.net mvc URL更改安全权限授予用户,asp.net,angularjs,asp.net-mvc,security,Asp.net,Angularjs,Asp.net Mvc,Security,显然我继承了一个严重的安全问题 用户可以登录并访问此URL https://ourdomain.com/User/Index 但问题是用户可以输入 https://ourdomain.com/User/Edit/16642 and have ACCESS 解决此问题的简单方法是什么?这是一个有时被称为“强制浏览”的漏洞。 对你的问题的简短回答是没有简单的方法。您必须实现授权,而在现有应用程序中进行改装是一件痛苦的事情 首先,您需要身份验证(即用户能够安全登录)。我想这已经差不多

显然我继承了一个严重的安全问题

用户可以登录并访问此URL

https://ourdomain.com/User/Index  
但问题是用户可以输入

https://ourdomain.com/User/Edit/16642     and have ACCESS 

解决此问题的简单方法是什么?

这是一个有时被称为“强制浏览”的漏洞。 对你的问题的简短回答是没有简单的方法。您必须实现授权,而在现有应用程序中进行改装是一件痛苦的事情

首先,您需要身份验证(即用户能够安全登录)。我想这已经差不多完成了,否则~/User/Index将毫无意义。(顺便说一句,如果站点中存在这样的漏洞,您可能也应该看看身份验证,但如果使用forms auth之类的标准工具,那么就更容易找到正确的方法。)

然后你需要授权,可能在两个不同的级别上。对于每个调用(即MVC中的控制器操作),您需要决定是否允许登录用户进行调用。在.NETMVC中,实现这一点的相对简单的方法是和

然后,根据功能的不同,您可能还需要细粒度授权。例如,如果您的应用程序存储分配给特定用户的书籍列表,而其他用户没有访问权限,则应用程序需要根据登录的用户和id=123的特定列表来决定是否可以满足~/ShowList/123请求(仅仅说登录用户可以调用~/ShowList是不够的,因为这取决于哪个用户)。这在Microsoft术语中称为基于资源的创作,并且已经讨论过了。如果在同一类型的主题(用户)和对象(图书列表)之间没有这样的区别,您可能根本不需要它

如果您继承的应用程序很大,那么实现这些都很痛苦,但不幸的是,实际上没有非常简单的捷径。您可以用不同的方法来实现,但任何比这少很多工作的方法都可能有缺陷,除非您的用例非常具体

另外请注意Angular与此无关。所有授权都必须在服务器端实现,否则将毫无用处