如何在SilverStripe 3.1.x中更改管理路径



有人能告诉我如何在SilverStripe 3.1.x上更改管理员的路径吗?我建立的一个网站在安全扫描中存在中等风险的安全问题——显然路径/管理员太容易猜测了。

建议:

修改管理登录页面的链接、名称或位置,使其不易由未经授权的用户识别/猜测。如果只有内部用户需要访问,则实施限制从互联网访问的附加限制。

我在这里找到了SilverStripe 2.x的一些东西:http://www.silverstripe.org/archive/show/3550,但我需要类似的东西用于SilverStripe 3.1.x

没有完全测试,但将它们添加到config.yml中似乎可以做到这一点:

Director:
  rules:
    'admin': ''
    'fancyLongAdminURL': 'AdminRootController'
AdminRootController:
  url_base: 'fancyLongAdminURL'
LeftAndMain:
  url_base: 'fancyLongAdminURL'

我只能看到左上角的myProfile链接不起作用。但这是因为url是在模板LeftAndMain_Menu.ss中硬编码的,您可以创建自己的模板。

编辑:上面的对于框架来说应该很好。对于CMS和其他模块,必须对此进行调查,并且可能需要更多的类/模板覆盖,例如:

  • CMS中似乎有硬编码的管理urlIntall_deleteinstallfiles.ssAssetAdmin.jsVirtualPage.phpSiteTree.phpAssetAdmin.phproutes.yml
  • Reports模块在Report.php中进行硬编码

在这些情况下,URLRewrite可能更方便,直到它在核心中实现为止。

更新:它现在已经合并到主分支中,因此它应该进入下一个4.0版本:https://github.com/silverstripe/silverstripe-framework/pull/3274

不,目前没有任何更改管理路径的机制。如果这是你真正认为应该在核心的东西,你可以考虑为它提出一个问题

有趣的是,这里面有一个问题。SilverStripe用于大量政府网站和大型银行的网站,因此它过去应该通过了相当多的代码审计。

最好的做法是使用.htaccess或类似方法将对/admin的访问限制在IP地址的白名单中。这比简单地更改路径要安全得多——"通过模糊处理实现安全"不是真正的安全。

最新更新