【问题标题】:Most secure PHP 'access denied' method最安全的 PHP '拒绝访问' 方法
【发布时间】:2011-09-14 02:14:47
【问题描述】:

我正在构建一个站点,该站点具有一个针对普通用户和管理用户的身份验证系统(对于任何感兴趣的人,使用 CodeIgniter 和 Tank Auth)。它们根据配置文件凭据进行区分。 (这是一种安全的方法吗?)

我的问题是,当用户访问他们没有查看凭据的区域时,我应该使用哪些 PHP 功能来限制访问?我的想法是“重定向”或“退出”功能。什么是最安全的方法?

【问题讨论】:

    标签: php security authentication codeigniter tankauth


    【解决方案1】:

    同时使用:

    header("Location: http://your_login_page");
    exit();
    

    exit() 将确保脚本的其余部分不会被处理,并且 header() 会将用户发送到有用的位置。 (“闲手是魔鬼的作坊……”)

    【讨论】:

      【解决方案2】:

      嗯,我认为 Tank Auth 应该已经在处理它了,不是吗? (我从未使用过该库,Ion Auth 会使用它,并且我认为它是身份验证系统的必备工具)。 通常,在普通的 PHP 中,你可能想要做一个

      header("Location: your/url");
      exit();
      

      在检查记录状态后重定向时(通过 $_SESSION、$_SESSION + cookie,例如)。 Exit() 阻止脚本继续,以防标头可能失败,从而显示不需要的代码。

      Codeingiter 有其内置的重定向系统(检查here on User Manualredirect() 功能。你可以像这样使用它:

      if ($logged_in == FALSE)
      {
           redirect('/login/form/', 'refresh');
      }
      

      或者使用'location'而不是'refresh',witch允许你设置一个标头响应发送到服务器

      // with 301 redirect
      redirect('/article/13', 'location', 301);
      

      但我相信 Tank Auth 有自己的方法足以满足您的应用程序,您是否已经检查过?

      【讨论】:

      • Tank Auth 似乎无法处理用户角色。我可以向用户配置文件数据添加一些内容,但我仍然需要手动测试用户的凭据并适当地阻止/允许访问。
      • @Eric Di Bari 检查 Ion Auth 也许,它具有这些功能。无论您选择什么,您都可以使用 CI 的本机重定向功能来帮助您解决这些问题。如果要将 ACL 扩展到所有“页面”及其方法,请记住检查控制器构造函数中的凭据
      猜你喜欢
      • 2019-09-23
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 2023-03-18
      • 2011-01-22
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      相关资源
      最近更新 更多