【发布时间】:2011-12-01 05:11:26
【问题描述】:
我正在尝试找到一种方法来拒绝对我的操作方法的任何直接访问。基本上,我希望我的用户点击链接进行导航,而不是直接在浏览器的地址栏中输入 URL。
现在我知道这可以通过检查请求对象中的 urlreferrer 来完成,但这有点不可靠和弱,因为 urlreferrer 很容易被修改,并且一些安全套件实际上将它从请求中删除。
那么你们中的任何人都知道在 asp.net mvc3 中执行此操作的方法吗?
【问题讨论】:
-
这需要有多“安全”?您是否只想阻止用户添加书签和/或键入 URL?或者你真的想让它免受那些真正知道如何欺骗 Javascript 和 cookie 的人的攻击吗?
-
我想让它尽可能安全,这就是为什么 urlreferrer 不太适合,因为它很容易被欺骗
-
这是为了防止CSRF吗?还是您真的需要防止“授权”用户欺骗有效请求?
-
这与 CSRF 无关,我们确实为此使用了 ValidateAntiForgeryToken 属性。我们希望阻止所有用户(包括“授权”用户)直接访问操作方法!唯一可以访问的 URL 是 domain/Login
标签: c# asp.net-mvc asp.net-mvc-3