我正在开发一个在公司内部使用的系统,但将来也可能在外部使用。从系统的初始用户(员工)的角度来看,该程序是开源的,因为他们可以访问存储代码的存储库。他们无权访问服务器配置、数据库等。
该系统是基于网络的,有几类用户,每类用户在他们可以看到和做的事情上都有自己的限制。我不打算讨论正在使用的确切身份验证和授权机制,因为我认为这超出了问题的范围。让我们假设一个人无法欺骗服务器做他或她不允许做或看到的事情(就内容而言,比如文章)。
但是,目前所有用户都只下载了一组 HTML、JavaScript 和 CSS 资源,无论其访问权限如何。为了减少必要的工作,我决定不对所有文件进行单独的版本。
无需摆弄 cookie,您就可以启用管理界面,因为它无论如何都包含在站点资源中。你可以看到它的样子,你可以看到它可以做什么。同时,您实际上无法对它做任何事情,因为服务器会知道您不是特权用户并拒绝满足您提出的任何请求,而您通常无法做到。
从可用性的角度来看,我找不到任何问题,因为只有“黑客”会遇到故障的管理界面,而没有普通用户。
我正在从安全的角度寻找负面影响。
我的问题是:
- 如果攻击者可以看到不应该/不允许使用的客户端代码,对攻击者有什么好处?
- 暴露这样的功能是我应该立即解决的一个非常糟糕的做法吗?
- 如果我们假设这是一个开放软件(目前从员工的角度来看它是),隐藏特权用户的工具是否只是某种隐蔽的安全性,因为攻击者无论如何都可以检查源代码?