如何限制Web应用程序中的屏幕访问..?
我已经开发了一个应用程序,直到现在我已成功地通过不显示/隐藏菜单选项或某些屏幕的按钮来限制屏幕访问。但现在的问题是用户能够在地址栏中键入url时访问屏幕。如何限制Web应用程序中的屏幕访问..?
我知道我不是第一个这样做,所以必须有某种标准的做法。 所以如果有人知道任何图书馆或某种方式来做到这一点,请让我知道。
谢谢。
免责声明 - 我不知道这将如何转化为Clojure,因为我从来没有使用它。
通常情况下,您会使用授权处理程序来装饰响应视图的方法。该处理程序知道如何与您的身份验证后端进行通信。它从当前上下文获取用户标识符(可以是用户标识符/用户名等),并向后端查询用户对请求视图的授权。
如果通过,则显示视图。
如果它被拒绝,那么根据业务规则(和安全准则)采取行动。这些可以像友好一样简单“你不允许在这里”;记录操作然后结束用户的会话。
如果您的应用程序有一组有限的端点(URL),您可以为用户创建端点的静态地图并将其用作您的访问控制列表(ACL)。但是,在大多数现代应用程序中,ACL是在一系列对象中进行控制的 - 并且端点(URL)不受限制,因为它们是动态的。例如/inventory/product/1
,/user/admin/3
等
更新:
这link提供装饰图案的视觉示图。
更新2:
授权库提供一些助手,会做的授权检查(“这是用户允许查看”),但在执行代码是留给各个应用。
通常你会使用一个或多个认证库(如誓言);但授权部分留给您的实施。
一个快速的谷歌带我到securing clojure web applications with sandbar这应该与你更相关。
谢谢..同样在我心中..我可以使用这样做的前路线。但似乎有其他方法可以做到这一点。像一些授权库,如果我是正确的.. – ngesh 2012-08-16 05:39:24
查看此[库](https://github.com/cemerick/friend/)从基于环的Web应用程序的身份验证和授权。 – Ankur 2012-08-16 06:17:05