Coldfusion 为什么不';t人们使用<;CFLOGIN>;?

Coldfusion 为什么不';t人们使用<;CFLOGIN>;?,coldfusion,cflogin,Coldfusion,Cflogin,为什么人们不使用CFLOGIN?我记得几个月前CF7出现了问题,但我不记得它出了什么问题。我一直在使用cflogin,效果很好。按照你喜欢的方式工作可能有点棘手,但好处是巨大的。能够使用用户角色对应用程序进行微调,就可以完成大部分基于权限的定制。过去,会话管理中存在一些问题,使其难以使用。打开j2ee会话似乎可以消除大部分这些问题 一些流行的框架与cflogin不兼容,因此这可能是您看不到很多cflogin的原因之一。他们往往有自己的方法来保护应用程序功能 我想很多人会对它感到沮丧,因为它有点古

为什么人们不使用CFLOGIN?我记得几个月前CF7出现了问题,但我不记得它出了什么问题。

我一直在使用cflogin,效果很好。按照你喜欢的方式工作可能有点棘手,但好处是巨大的。能够使用用户角色对应用程序进行微调,就可以完成大部分基于权限的定制。过去,会话管理中存在一些问题,使其难以使用。打开j2ee会话似乎可以消除大部分这些问题

一些流行的框架与cflogin不兼容,因此这可能是您看不到很多cflogin的原因之一。他们往往有自己的方法来保护应用程序功能


我想很多人会对它感到沮丧,因为它有点古怪,他们放弃了它。其他人有更复杂的安全需求,而cflogin并不能完全满足这些需求,因此他们最终编写了自己的系统。具体来说,没有一种简单的方法可以通过内容资产处理权限。

我遇到的唯一问题是CF8中的角色。它的实现非常出色,而且有点残酷,因为它没有像它应该的那样工作。也许在CF9中

无论如何,构建您自己的基于角色的系统(为用户分配一个会话变量,其中包含一个逗号分隔的系统可以检查的访问级别列表)并不难,我已经克服了这一点

cfLogin的一个优点可能仍然值得使用,就是它如何连接到服务器监视器以查看有多少人登录,等等

上述关于使用jsession的观点是正确的,在所有cf应用程序中都值得这么做。其中一个最好的事情是我自己努力工作,以达到我想要的效果。

在我的情况下(假设对其他人来说也是如此),主要原因是从其他平台迁移,比如PHP。我的意思是,我已经掌握了一些ACL开发的知识和习惯,并开始在CF中使用它们

我知道如何让它方便用户,灵活的开发人员和安全,不需要真正切换到cflogin


有时候,其他东西也会发生同样的情况,比如在大多数情况下,我更喜欢使用自己的JS实现客户端验证,而不是使用cfform/cfinput。

CFLogin不使用有三个原因。

首先,它有点敏感,有点奇怪,不起作用,多少人会这么想。你在这里放了一些代码,如果用户没有登录,它会运行它。。。这很奇怪,你知道吗?早期出现了一些bug也没什么帮助

第二个,虽然它具有web应用程序所需的基本安全功能,但它没有做更多的工作。你不能轻易地扩展它。谁能说每个人都这么想

第三,最现实的是,这是因为人们已经解决了这个问题。保护应用程序、身份验证和授权的问题在社区中已经考虑了足够长的时间,大多数人都知道如何做到这一点。CFLogin正在重塑这扇门。太少了,太晚了


现在,这并不是说没有人使用它。我个人使用过几次,基本上都取得了成功,但没有理由去敲响警钟。对于我的大多数应用程序,不使用CFLogin更有意义。问题域是这样或那样的,CFLogin并不总是以最智能的方式解决问题。

请记住,CFLogin有一个基本HTTP身份验证的陷阱,即使在您调用CFLogin退出后,它也可以继续发送其用户ID和密码

我知道这已经迫使一些高级用户远离它

这是一篇文章的摘录

警告:如果使用基于web服务器的 身份验证或任何形式 使用基本HTTP的身份验证 授权头,浏览器 继续发送身份验证 将信息发送到您的应用程序,直到 用户关闭浏览器,或在 在某些情况下,所有浏览器窗口都会打开。 因此,在用户注销后 您的应用程序使用cflogout 标记,直到浏览器关闭为止 cflogin标记中的cflogin结构 将包含已注销用户的 用户ID和密码。如果用户登录 退出并不关闭浏览器, 另一个用户可能使用访问页面 第一个用户的登录名

因为它(仍然!)有严重的bug,比如:


什么是“会话管理问题”?你还记得吗?我模模糊糊记得的问题是,如果你不使用j2ee会话,关闭所有浏览器不会终止你的身份验证,而且在高容量站点上(同样,没有j2ee会话),当重新使用cfid时,登录凭据可能会被劫持。我根本无法让它与NTLM身份验证一起工作(无论如何,在CF7上)。FWIW,它只是不能像广告中所宣传的那样工作。我通常会假装它正常运行,因为我想使用基于角色的安全性,但标记本身被破坏了。刚刚意识到,这不是CFLOGIN的错。这是HTTP基本身份验证的常见问题,搜索StackOverflow阅读我在那里发布的评论。URL中的冒号应该编码为%3A,然后cflogin.password就可以工作了