【问题标题】:How to secure Admin Panel in PHP?如何保护 PHP 中的管理面板?
【发布时间】:2013-10-07 11:32:41
【问题描述】:

我有一个有两个面板的网站....

1- 普通用户可通过domain.com访问
2- 管理员和版主可通过admin.domain.com访问

当我(或任何人)使用 admin.domain.com 访问管理面板时。他将被要求输入用户名和密码...但是

我怎样才能让它只对我可见(任何告诉服务器的方式..嘿我是管理员给我看那个页面) 我想到的一种方法是对静态 ip 使用路由过滤器,比如嘿

Laravel我的名字是192.116.45.15...显示那个页面。

另一种方法是将我的整个管理员与服务器分开,并直接从我的本地主机使用它。

请多讲一些方法(顺便说一下我使用 Laravel)

【问题讨论】:

  • 你的问题有点宽泛……所以很难直接回答。但是您可以尝试使用 iptables 防火墙来阻止来自给定请求但来自一个主机的所有流量。

标签: php laravel laravel-4 admin


【解决方案1】:

与其做任何服务器配置,不如使用安全字段。 比如说,连同用户名和密码,您能否在表单中添加一个字段PIN。 无论如何,这个领域再次只有你知道。 此外,您可以使用强密码来保护您的管理面板。

【讨论】:

    【解决方案2】:

    如果您的方法是希望服务器在登录之前进行区分。您可以设置管理员页面只能由具有(IP 地址)的管理员用户访问。

    如果他们从主页登录。您可以获取用户角色会话。

    Role Level
    1    Admin
    2    Moderator
    3    Member
    

    【讨论】:

      【解决方案3】:

      如果您根本不希望用户看到管理员登录页面,您可能需要特殊的 GET 参数,该参数几乎就是密码。例如admin.domain.com/ 只会输出任何内容,但 admin.domain.com/?5q38cZxyaA 会输出登录页面。只要您不在任何地方发布链接,这就像通过帖子发送密码一样保存(所以它保存为以下真实登录)。

      【讨论】:

      • 默默无闻的安全是安全人群的笑柄。 en.wikipedia.org/wiki/Security_through_obscurity
      • 这就是为什么我写信只在真正登录之前这样做!这足以让普通用户远离!此外,这与 STO 无关,因为您不保留隐藏密码的算法!以 GET 或 POST 传输密码的安全性差异在哪里?
      【解决方案4】:

      如果您对服务器具有 ssh 访问权限,则可以在某个不同的端口(例如端口 3000)上运行管理面板,然后在防火墙中阻止该端口,但您自己的 ip 除外。

      【讨论】:

      • 每当您连接到互联网时,您的 ISP 都会为您提供一个 IP,并且在大多数情况下它不会改变。因此,一旦您将该 ip 提供给防火墙的过滤表,您就可以开始了。
      • 但是当 IP 改变时呢?
      • 我没有问什么时候。鉴于您正在进行 IP 过滤,我在问在这种情况下会做什么。
      • 在这种情况下,您可以使用 ssh 添加您当前的 ip。这就是基于 ssh 密钥的身份验证的工作原理!我确实同意它将您限制在自己的 ip 上,但就问题而言,这很好!
      • 从服务器的角度来看一个IP并不意味着一个用户。 NAT呢?一个外部 IP 可能意味着数十个用户。从安全的角度来看,您提出的建议是半因素身份验证,完全不可接受且非常危险。
      猜你喜欢
      • 2017-06-30
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      相关资源
      最近更新 更多