我打算部署一个包含敏感数据的内部应用程序.我建议我们将它放在一台不暴露于普通互联网的机器上,只是我们的内部网络.IT部门拒绝了这个建议,称为一个应用程序预留一台整机是不值得的.(该应用程序有自己的域,以防相关,但我被告知他们无法阻止基于URL的请求.)
在应用程序内部,我将其编程为仅尊重请求,如果它们来自内部IP地址,否则它只显示一个页面"你不能看这个".我们的内部地址都有一个独特的模式,所以我正在检查请求IP对正则表达式.
但我对这个策略很紧张.对我来说这感觉有点笨拙.这个相当安全吗?
IP过滤总比没有好,但它有两个问题:
IP地址可能是欺骗性的.
如果内部计算机受到攻击(包括客户端工作站,例如通过安装特洛伊木马程序),则攻击者可以将其用作跳转主机或代理来攻击您的系统.
如果这是非常敏感的数据,它不一定需要专用机器(尽管这是最佳实践),但您至少应该以某种方式对您的用户进行身份验证,并且不要运行不太敏感(并且更容易被攻击)的应用程序.同一台机器.
如果它真的很敏感,请让安全专业人员审查您正在做的事情.
编辑:顺便说一句,如果可以的话,抛弃正则表达式并使用tcpwrappers或OS中的防火墙功能(如果有的话).或者,如果您的应用程序可以使用不同的IP地址,请使用防火墙阻止外部访问.(如果你没有防火墙,那么你也可以放弃并通过电子邮件将数据发送给攻击者:-)
我宁愿使用SSL和一些证书,或简单的用户名/密码保护而不是IP过滤.