2010-03-02 159 views
3

我们刚刚完成使用.NET MVC框架开发我公司的新网站。支持我们应用程序的sql服务器拥有一些重要数据,例如其他Web用户的配置文件,我们希望确保这些数据不会因为公司的声誉风险而泄露。关于网站安全性的建议

我们对事情的一些想法做,以确保我们的网站,但我想获得的计算器就这些。我们将使用SSL登录屏幕,并防止基本的附加方法,如sql注入,跨站点脚本攻击。

但是我们担心物理机器会被一些漏洞利用所接管。我们将在DMZ中运行网络服务器(带IIS7的Windows Server 2008 SP2),只有端口80和443对互联网开放。目前,sql server位于web服务器上,但我们正在考虑这是否存在安全风险。在第二个DMZ的主机上托管SQL服务器有助于安全吗?

我们还考虑在一个DMZ中使用运行Apache的Ubuntu盒子,这个DMZ会将80或443个请求“重定向”到第二个DMZ中的独立Windows机器,它将执行Web服务和SQL服务器托管。

,我们得到了一些其他的建议是使用的产品,如WatchGuard的可显然过滤HTTP数据包符合标准从而到达Web服务器阻止狡猾的包。

我们应该寻求哪些其他保护措施?

谢谢

回答

0

1-关键数据必须在您的表中加密。

2-小心所有类型的SQL注入。

3-加密的web.config文件

+0

要澄清,我们已经实现了以下内容,我们正在从应用程序开发的角度和从部署/基础架构的角度来寻找额外的东西: – Matthew 2010-03-02 12:23:06

+0

1.存储在数据库中的密码被散列和腌制,因此即使数据库被破坏,这些数据也是没有用的。 2.通过确保所有用户输入的返回浏览器的数据是HTML编码,防止跨站点脚本(XSS)和html注入。 3.通过防伪验证令牌阻止跨站请求伪造。 4.通过SSL保护所有敏感数据的传输。 – Matthew 2010-03-02 12:23:56

2

连接字符串只允许80和443是一个非常好的主意。 DMZ代表非军事区,这是为了在所有流量都可以访问的NAT上定义一台机器,这应该避免。毕竟,在运行Windows之后,允许SQL Server和端口445会导致黑客入侵,而在另一个RPC漏洞出现之前,只有时间问题。

您必须做的最重要的事情是测试您的安全。它不足以说你正在阻止xss和sql注入。所有安全的系统必须被证明可以阻止攻击。

你如何测试你的系统?我喜欢Acunetix,但它的价格已经超过了,但是有一个free xss tester。对于我推荐使用免费的Wapiti SQL注入和其他漏洞。我推荐使用OpenVAS这是现在是商业产品的Nessus的新的开源版本。 OpenVAS会告诉你,如果你的服务器配置错误或者你正在运行旧软件。您应该对系统进行完整的端口扫描以测试您的防火墙,此命令将工作nmap -sT -p 1-65535 domain.com,这也可以通过OpenVas完成。

测试完系统后。然后安装一个Web应用程序防火墙,mod_ secuirty是Apache的不错选择,你可以使用一个反向代理来获得mod_security与IIS一起工作。 Aqtronix是为IIS构建的开源WAF,但我没有使用它。