保护自定义cms管理面板的最佳实践?

时间:2017-11-10 14:36:17

标签: node.js security content-management-system webserver admin

我目前正在使用MEAN堆栈构建自定义cms系统。我还希望有一个基于Web的后端管理面板,但我也希望它尽可能安全。在过去,当我构建基于php的脚本时,我只是创建了一个/admin路由,在该路由中,用户将看到一个登录页面,然后允许继续使用cms上的管理功能。但是,通过分析我的Web服务器访问日志,我注意到很多对常见管理员路由的请求,例如/wp-admin/administration,甚至是我自己的/admin来自wannabe黑客的路由,甚至当那些网站没有很多流量时。

这次我一直在考虑使用不同的方法,专门设置一个单独的节点应用程序用于管理目的并将其放在一个完全不同的端口(即2123),然后将服务器的防火墙设置为仅允许某些ip阻止访问该端口。这样,即使攻击者在我的网络服务器上执行了端口扫描,他们也只能看到默认端口80和443.这是保护我的应用程序的好方法,还是有更好的方法?

2 个答案:

答案 0 :(得分:0)

设置VPN并使远程用户与VPN连接,并且只允许本地网络访问管理面板

或者在您的网络服务器前放置类似modsecurity的WAF

你的知识产权限制理念虽然不是很糟糕

答案 1 :(得分:0)

从不同的来源(原点是协议+域+端口)服务管理界面确实是最好的做法。一个原因是你提到的,你可以实现单独的网络级保护,例如你可以通过IP地址限制客户端。

另一个原因是因为这样,基础应用和管理应用将在浏览器中通过相同的原始策略分开。来自不同的起源,他们不会共享cookie(会话),broswer商店(localStorage等)将是分开的等等。例如,如果这两个应用程序使用相同的协议,域和端口,则可以利用基础应用程序中的一个单独的XSS来访问管理数据或功能 - 不同的来源不是这种情况。