【发布时间】:2012-08-22 22:03:17
【问题描述】:
我有一个基于 ASP.NET MVC 的应用程序,它允许根据用户进行不同级别的访问。它当前的工作方式是当用户访问页面时,对数据库进行检查以确定用户拥有的权限。然后根据用户拥有的访问级别选择视图。一些用户比其他用户看到更多的数据并且拥有更多可用的功能。每个页面还进行各种ajax调用来显示和更新页面显示的数据。
我的问题是,确保特定 ajax 调用源自视图并且不是手动制作以返回或更新用户无权访问的数据的最佳方法是什么?我宁愿不必在每次进行 ajax 调用时都去数据库重新检查,因为在用户最初加载页面时已经完成了。
【问题讨论】:
-
你为什么不坚持使用内置的会员资格和角色提供者?这是开箱即用的,因为您的 ajax 调用带有所有 cookie,所以所有身份验证 cookie 肯定都在那里。
-
除了 Wiktor 所说的,我不会对任何与网站安全有关的事情进行任何 ajax 调用,我只会做普通的帖子。最好是安全的人。
-
我认为没有“最好的方法”来做到这一点......这取决于你如何构建你的安全层......就像你是否基于 asp 成员创建它们一样...... .. 无论如何...我会创建一个共享安全类来缓存数据库中的安全设置...这样您就不需要在每次调用时访问您的数据库...您只需从内存中读取它。跨度>
-
@HanletEscaño 普通帖子比 Ajax 帖子更安全吗?
-
@Charlino,您无法将普通帖子与 XMLHTTPRequest 进行比较,尽管它们看起来可能会做同样的事情,但事实并非如此。即使没有经验的用户也可以轻松查看和更新这类帖子,而普通形式的帖子也是如此,但它仍然会更安全。
标签: asp.net asp.net-mvc security