面向Internet的Web应用程序需要访问SQL数据库的devise

我需要创build一个访问我们公司LAN上的SQL数据库的Web应用程序。 这是一个好的/安全的方法吗?

  1. 创build一个DMZ,目前没有一个。

  2. 将Web服务器(运行IIS)放置在DMZ中,将其放在它自己的工作组中,而不使其成为公司域的成员。 据我所知,我们只需要一个盒子,所以不需要为DMZ创build一个单独的域。

  3. 在DMZ(inbetween路由器和networking服务器)之前放置一个只允许HTTP和/或HTTPS访问Web服务器的防火墙。

  4. 在DMZ(介于networking服务器和局域网之间)放置另一个防火墙,该防火墙只允许从networking服务器到局域网上的SQL服务器的SQL连接,并阻止其他一切。

对于上面提到的这个configuration,我们需要购买2个防火墙和一个路由器以及一台服务器来运行IIS。 该应用程序基本上只是一个.Net窗体访问数据库,并创build一个可保存.pdf完成后。 我假设我们应该考虑应用层防火墙来帮助保护SQL注入/跨站点脚本等)。

那个networkingdevise会有效吗? 任何其他更具成本效益和/或更安全的布局选项?

你的架构基本上是健全的,但是请注意,你可能只需要一个防火墙设备,用DMZ规则来隔离App服务器。
考虑以下内容,它只显示理论应用服务器的stream量input/输出。

在这里输入图像说明


其他一些stream浪的想法:

  • 看看我对你的问题的评论。
    问问自己: Do I *need* to access my main SQL server at all? – 如果您可以将提取的数据推送到DMZ应用程序,而不是通过防火墙来访问您的公司networking,那么从安全angular度来看,您将处于更好的位置。

  • 如果您必须直接访问您的SQL服务器,请确保使用可能的最小权限的帐户。

    • 不要让它从任何表中读取它不需要读取。
    • 不要让它写入任何不需要写入的表
      (理想情况下,不要写任何东西!批量更改,然后由另一个程序加载,以便他们首先进行检查。)