Authentication 基于Coldfusion的认证系统

Authentication 基于Coldfusion的认证系统,authentication,coldfusion,cfml,Authentication,Coldfusion,Cfml,我正在开发一个网站,将有一个管理部分。我已经在谷歌上搜索过了,发现了(在博客上)关于实现这一点的最佳方法的相互矛盾的信息。我希望你们中的一些开发人员在这方面有第一手的经验 是将login.cfm和login_process.cfm文件放在管理区域内更好,还是在身份验证完成后将用户路由到管理区域更好或这真的重要吗?我更倾向于在认证后将用户路由到管理区域,主要是为了向没有帐户的人隐藏管理区域的位置,以帮助抵御黑客攻击 支持您答案的链接非常感谢,但不是必需的,除非我得到相互矛盾的答案。:) 从安全角度

我正在开发一个网站,将有一个管理部分。我已经在谷歌上搜索过了,发现了(在博客上)关于实现这一点的最佳方法的相互矛盾的信息。我希望你们中的一些开发人员在这方面有第一手的经验

是将login.cfm和login_process.cfm文件放在管理区域内更好,还是在身份验证完成后将用户路由到管理区域更好这真的重要吗?我更倾向于在认证后将用户路由到管理区域,主要是为了向没有帐户的人隐藏管理区域的位置,以帮助抵御黑客攻击


支持您答案的链接非常感谢,但不是必需的,除非我得到相互矛盾的答案。:)

从安全角度看,登录脚本驻留在哪里并不重要

重要的是,在授予用户访问安全脚本的权限之前,您实际上要检查以确保用户经过身份验证和授权,而不仅仅是依赖于这样一个事实,即在用户登录之前,他们不知道管理员URL在哪里。我无法告诉你,我看到过多少破碎的网站,其中的管理员URL被谷歌编入了索引,任何人只要偶然发现,都可以进入

因此,您的身份验证过程应该有两个步骤

  • 身份验证(您的
    login.cfm
    login\u process.cfm
    脚本)。这应该检查用户凭据,然后通常在用户的
    会话
    范围内设置一些内容

  • 授权(在您的管理区域)。这应该检查用户是否已登录(查看您在步骤1中设置的
    会话
    变量),以及(如果您正在实施基于角色或权限的授权),用户是否有权访问请求的资源,如果没有,则显示错误或重定向


  • 如果您试图保护整个目录,通常最容易在admin目录中的
    应用程序.cfm | cfc
    中实现(因此它会自动在该目录中的所有页面上调用)。如果您这样做,那么将
    登录
    脚本置于受保护目录之外就变得很容易,这样您就不需要用户登录才能访问登录脚本。

    从安全角度讲,登录脚本驻留在何处并不重要

    重要的是,在授予用户访问安全脚本的权限之前,您实际上要检查以确保用户经过身份验证和授权,而不仅仅是依赖于这样一个事实,即在用户登录之前,他们不知道管理员URL在哪里。我无法告诉你,我看到过多少破碎的网站,其中的管理员URL被谷歌编入了索引,任何人只要偶然发现,都可以进入

    因此,您的身份验证过程应该有两个步骤

  • 身份验证(您的
    login.cfm
    login\u process.cfm
    脚本)。这应该检查用户凭据,然后通常在用户的
    会话
    范围内设置一些内容

  • 授权(在您的管理区域)。这应该检查用户是否已登录(查看您在步骤1中设置的
    会话
    变量),以及(如果您正在实施基于角色或权限的授权),用户是否有权访问请求的资源,如果没有,则显示错误或重定向


  • 如果您试图保护整个目录,通常最容易在admin目录中的
    应用程序.cfm | cfc
    中实现(因此它会自动在该目录中的所有页面上调用)。如果您这样做,将
    登录
    脚本置于受保护目录之外就变得很容易,这样您就不需要用户登录才能访问登录脚本。

    请记住,cf只能保护cfm文件,它不会阻止任何人访问图像、.html、.pdf文档等,如果他们知道url的话。所以这取决于你想保护什么。如果是一个简单的管理区域,这可能就足够了。 为了获得最佳的安全性,如果您需要保护非cf文件和资源,您应该使用htaccess或类似工具来保护整个文件夹和其中的所有内容。
    有很多方法可以在小范围内使用cfcontent。

    请记住,cf只能保护cfm文件,它不会阻止任何人访问图像、.html、.pdf文档等,如果他们知道url。所以这取决于你想保护什么。如果是一个简单的管理区域,这可能就足够了。 为了获得最佳的安全性,如果您需要保护非cf文件和资源,您应该使用htaccess或类似工具来保护整个文件夹和其中的所有内容。
    在小范围内使用cfcontent有很多方法。

    我总是将登录文件放在安全区域之前。它更容易管理。然后在application.cfc中,我可以检查cgi.script_name是否包含“/secured/”,session.adminid是否为“”,以确保整个结构中的文件cfm文件未被访问。我这样做已经超过10年了,没有问题。我总是把我的登录文件放在我的安全区域之前。它更容易管理。然后在application.cfc中,我可以检查cgi.script_name是否包含“/secured/”,session.adminid是否为“”,以确保整个结构中的文件cfm文件未被访问。我这样做已经超过10年了,没有问题。我没有想过要保护整个目录——我真的很喜欢这种方法。你能提供一个链接或解释如何做到这一点吗?我的假设是,您将在application.cfm | cfc根级别设置会话变量(通过login.cfm和login|u process.cfm),然后在admin/application.cfm | cfc级别执行检查,对吗?另外,我是否也需要在admin\application.cfm | cfc文件中包含根应用程序.cfm | cfc文件?我手头没有链接,但这应该很容易。在您的登录过程中,只需设置一些pe