验证网站用户是否位于公司防火墙后面?

信息安全 应用安全 Web应用程序 iis ip欺骗
2021-08-20 20:24:57

我们在现场数据中心托管了一个公共电子商务网站。对于在公司防火墙内访问网站的人,我想显示有关当前页面请求的分析信息。这将包括 sql,因此我们希望尽可能地保护它。从我们公司的防火墙内部访问网站时,用户的 IP 地址始终为 192.168.0.12。

如何可靠/安全地判断访问我们网站的用户是否来自公司防火墙内部?验证 IP 地址是否足够?

3个回答

如何可靠/安全地判断访问我们网站的用户是否来自公司防火墙内部?验证 IP 地址是否足够?

我认为一个更大的问题是“你能以一种没人可以操纵的方式编写这段代码吗?” 我非常怀疑,但是,有些事情你可以做。

编辑好的,旧答案可能在这里有点安全偏执。将调试代码引入您的实时应用程序是一种安全风险,因为它是您绝对需要经得起审查的另一个级别的身份验证。但是,在某些情况下,这可能是可以接受的。

对于在线商店,我可以说最好的选择是由服务器知道的受信任证书签名的客户端 SSL 证书,可能与 IP 地址限制相结合。保留撤销清单 原因:

  • 很难欺骗。证书必须先由您签名和授权,然后安装到客户端浏览器中。因此,安全性变成了控制对授权证书的访问——您可以通过保留一个撤销列表/信任的“我将向其显示配置文件信息”列表来使它们在服务器端无效
  • 无论如何,您在最慢的情况下(登录用户)都在使用 SSL,因此您可以假设基于 SSL 的流量时间是上限(纯 HTTP 会更快,但只有一点点)。
  • 依赖现有的加密实现,而不是尝试实现可能在密码学上被破坏的新东西。
  • 您实际上可以在一定程度上放宽IP要求;开发人员也可以在家进行测试。

我会在混合中添加额外的身份验证——也许是由中间代理或其他东西添加的额外标头。即使是标头也不是很强大,因为它可以被欺骗,但单独的 IP 地址似乎有点弱。

虽然欺骗 TCP 流量(并查看响应)并非易事,但如果可能,您应该寻找另一层来添加。如果您使用的是 Windows,请考虑将 Kerberos/NTLM 添加到组合中(Windows Auth)。

对于站点的经过身份验证的区域,您可以添加应用程序将向其提供调试信息的用户列表,并将其与源 IP 地址一起检查,因此基本上它仅适用于来自内部网络的适当用户。

正如其他答案所指出的那样,仅依赖源 IP 地址可能是一个问题,因为任何有权访问该网络的人在访问该站点时都会获得此信息,其中(取决于该网络上的谁)可能包括不应该看到的人它。

根据配置,IP 地址欺骗的风险可能非常低,但允许整个网络访问潜在敏感信息而不进一步验证它们通常不会被视为强控制。