有人能告诉我如何在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.ss
、AssetAdmin.js
、VirtualPage.php
,SiteTree.php
、AssetAdmin.php
、routes.yml
Reports
模块在Report.php
中进行硬编码
在这些情况下,URLRewrite可能更方便,直到它在核心中实现为止。
更新:它现在已经合并到主分支中,因此它应该进入下一个4.0版本:https://github.com/silverstripe/silverstripe-framework/pull/3274
不,目前没有任何更改管理路径的机制。如果这是你真正认为应该在核心的东西,你可以考虑为它提出一个问题
有趣的是,这里面有一个问题。SilverStripe用于大量政府网站和大型银行的网站,因此它过去应该通过了相当多的代码审计。
最好的做法是使用.htaccess或类似方法将对/admin的访问限制在IP地址的白名单中。这比简单地更改路径要安全得多——"通过模糊处理实现安全"不是真正的安全。