将asp.net mvc URL更改安全权限授予用户
显然我继承了一个严重的安全问题 用户可以登录并访问此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 解决此问题的简单方法是什么?这是一个有时被称为“强制浏览”的漏洞。 对你的问题的简短回答是没有简单的方法。您必须实现授权,而在现有应用程序中进行改装是一件痛苦的事情 首先,您需要身份验证(即用户能够安全登录)。我想这已经差不多
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与此无关。所有授权都必须在服务器端实现,否则将毫无用处