2011-05-27 35 views
2

我一直在创建这个相当大的Web应用程序,并且一直在更新它。加班,我学到了更多的东西来使系统更加实用。现在,我要回去尝试摆脱那些不可重复使用的代码,或者只是奇怪/古怪的代码。Coldfusion的安全层次编码风格

我的第一步是看我的安全等级。我的系统运行在安全级别的主干上。 X级可以查看X的东西...等。

什么是最好的方式来编码?现在,我有一个查询来检索它们的安全级别并将其设置为会话变量。这些人也可以属于不同安全级别的许多其他“部门”。 (该部门也存储为会话变量。)我的系统中的网页会检查我的标题以查看它们是否可以访问该页面。但是,有一些地方只有某些安全级别可以查看动态表单和数据。在这些方面,我几乎有cfif声明,说如果安全等于一定水平......向他们展示或向他们展示。所以,在同一页面上,有人可能会看到不同的东西。

有没有更好的方式来处理呢?我觉得我的代码不够好。 (好吧,它永远不会如此好。)我基本上在寻找如何更好地处理安全层次结构的建议。

(注:我已经有系统编码只是在寻找提醒在编码风格或验证,如果我在做什么声音的权利“!)

我也努力让我的查询更喜欢功能。 ..和所有在一个地方,使他们不能左右浮动随机在一些网页上。

回答

3

的ColdFusion已经基于角色的安全建立在你有<cfloginuser>roles属性和授权检查的IsUserInRole()功能。

此外,你有一个roles attribute on CFC functions 。这些采用逗号分隔的用户必须参与的角色列表来执行该功能。

您的工作是管理角色成员资格(通过数据库表),并在会话开始时建立用户上下文。

如果您将业务逻辑抽象为组件并将一些想法变为创建明智的角色,那么可以在应用程序中强加一个非常简单易用的安全模型。

+0

哇,我不知道coldfusion有一个内置的东西那样! :) 谢谢。 – Bri 2011-05-27 15:37:18

+0

@Bri:我起初有点犹豫,先写回答,因为我想 - 哇,这很明显,他可能已经做到了。 ;-)但是你去了。 – Tomalak 2011-05-27 16:01:59

+0

实际上,我已经知道了,但我们的服务器管理员负责这个部分。我只是从中发展出一些东西。所以我想我做对了。 :) – Bri 2011-05-31 20:37:15