如何确保一个Web站点的安全?
2010-11-03 20:45
267 查看
记得上次面试时,面试官给我提出了这个问题,当时回答的比较迷糊,回来也查了一些相应资料,在此作个简单的总结。
但凡提到安全,就会想起安全的铁三角——CIA:
C:Confidentiality 保密性
I:Integrity 完整性
A:Availability 可用性
的却,作为Web站点,这三者缺一不可(貌似是废话)。现在的Web站点大多都是基于三层架构的:
前端页面是页面显示层,为用户提供可视化的交互接口。要求信息能够准确无误,及时的呈现给用户。这一层面体现了安全的完整性与可用性。
服务器端脚本语言可以看作是业务逻辑层,它负责处理用户提交的各个事务,负责服务器端与用户的交互。这一过程要求用户提交的请求必须是合法的,而且不能让其他非法用户知道。这一层面全部体现出了安全的CIA。
数据服务器作为数据层,在笔者看来是最重要的。它保存了整个站点的所有重要,机密信息。一旦数据层的安全防护被攻破,整个站点的安全性也就不复存在了。
那要如何确保一个Web站点的安全呢?我们先看一下一个基本的Web站点的组成:服务器(工作站),Web服务器(IIS,Apache等),数据服务器,数据服务器管理系统(MS SQL Server,MySQL,Oracle等),服务器管理员,Web站点管理员(可能与服务器管理员是同一个人),防病毒软件,入侵检测系统,防火墙,以及各种网络设备(交换机),站点文件等等。要确保一个站点的安全,每一项都是不容忽视的。
物理安全:服务器(工作站)的环境(温度,湿度,颗粒度,灰尘指数,静电指数等)是否适宜,非授权人员是否容易接触服务器、各种网络设备。
外围设备安全:入侵检测系统,防火墙等是否配置得当。
软件安全:Web服务器配置是否得当,是否及时更新补丁,防病毒软件的病毒库是否及时更新,数据库管理系统配置、用户权限分配是否合理。
管理安全:服务器管理员是否可靠,是否有相应的监管、审计部门对管理员进行监督管理。
一些前辈的Tips:
OS,各种开启的服务(尤其是Web服务)及一些相关的脚本文件需要得到及时的升级;
服务器的服务及权限最小化,禁止弱口令及共享帐号;
对于文件服务器和邮件服务器,需要对防病毒系统及时更新;
正确配置防火墙的安全策略,以达到最大限度的访问控制,及时备份、更新访问控制列表;
使用IDS,安全审计系统,日志系统,可以在入侵发生之前响应应急预案,并及时报警,也可在入侵发生后追查被攻击者利用的系统漏洞或系统弱点,攻击者的入侵路径,以及保留攻击证据,以备日后调查与分析;
条件允许的情况下,尽量将数据服务器与web服务器分离,并且限制数据服务器只能与web服务器连接;
长期动态的对安全进行监控;
对管理员后台进行严格的保护,有条件的话,应该设置为只允许特定的IP访问(例如只允许管理员网段访问)——这个要根据实际情况来看的;
条件允许的情况下,配置针对HTTP的内容过滤,过滤病毒、恶意脚本等;
但凡提到安全,就会想起安全的铁三角——CIA:
C:Confidentiality 保密性
I:Integrity 完整性
A:Availability 可用性
的却,作为Web站点,这三者缺一不可(貌似是废话)。现在的Web站点大多都是基于三层架构的:
前端页面是页面显示层,为用户提供可视化的交互接口。要求信息能够准确无误,及时的呈现给用户。这一层面体现了安全的完整性与可用性。
服务器端脚本语言可以看作是业务逻辑层,它负责处理用户提交的各个事务,负责服务器端与用户的交互。这一过程要求用户提交的请求必须是合法的,而且不能让其他非法用户知道。这一层面全部体现出了安全的CIA。
数据服务器作为数据层,在笔者看来是最重要的。它保存了整个站点的所有重要,机密信息。一旦数据层的安全防护被攻破,整个站点的安全性也就不复存在了。
那要如何确保一个Web站点的安全呢?我们先看一下一个基本的Web站点的组成:服务器(工作站),Web服务器(IIS,Apache等),数据服务器,数据服务器管理系统(MS SQL Server,MySQL,Oracle等),服务器管理员,Web站点管理员(可能与服务器管理员是同一个人),防病毒软件,入侵检测系统,防火墙,以及各种网络设备(交换机),站点文件等等。要确保一个站点的安全,每一项都是不容忽视的。
物理安全:服务器(工作站)的环境(温度,湿度,颗粒度,灰尘指数,静电指数等)是否适宜,非授权人员是否容易接触服务器、各种网络设备。
外围设备安全:入侵检测系统,防火墙等是否配置得当。
软件安全:Web服务器配置是否得当,是否及时更新补丁,防病毒软件的病毒库是否及时更新,数据库管理系统配置、用户权限分配是否合理。
管理安全:服务器管理员是否可靠,是否有相应的监管、审计部门对管理员进行监督管理。
一些前辈的Tips:
OS,各种开启的服务(尤其是Web服务)及一些相关的脚本文件需要得到及时的升级;
服务器的服务及权限最小化,禁止弱口令及共享帐号;
对于文件服务器和邮件服务器,需要对防病毒系统及时更新;
正确配置防火墙的安全策略,以达到最大限度的访问控制,及时备份、更新访问控制列表;
使用IDS,安全审计系统,日志系统,可以在入侵发生之前响应应急预案,并及时报警,也可在入侵发生后追查被攻击者利用的系统漏洞或系统弱点,攻击者的入侵路径,以及保留攻击证据,以备日后调查与分析;
条件允许的情况下,尽量将数据服务器与web服务器分离,并且限制数据服务器只能与web服务器连接;
长期动态的对安全进行监控;
对管理员后台进行严格的保护,有条件的话,应该设置为只允许特定的IP访问(例如只允许管理员网段访问)——这个要根据实际情况来看的;
条件允许的情况下,配置针对HTTP的内容过滤,过滤病毒、恶意脚本等;
相关文章推荐
- C#与.NET程序员面试宝典 2.3.3 面试题18:如何通过安装向导配置一个Web站点(图)
- 团队开发中,如何处理一个站点不同Web应用通用Session
- 团队开发中,如何处理一个站点不同Web应用通用Session
- 如何打造一个安全的WEB服务器
- 一个站点存在多个web.config时如何管理?
- 在R5中如何将一个Domino Web服务器配置为多个Web站点--虚拟服务器
- 如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap
- 一个站点存在多个web.config时如何管理?
- Asp.net中如何处理一个站点不同Web应用通用Session的问题
- 一个站点存在多个web.config时如何管理
- 如何打造安全的Web站点
- 团队开发中,如何处理一个站点不同Web应用通用Session
- 如何保障Winnt +asp +sql web站点的安全经验
- 在微机室局域网中如何建立一个带域名解析的WEB站点
- 如何发布一个新的WEB站点
- 一个简陋的web站点文档安全访问
- 如何发布一个新的WEB站点
- 揭露黑客是如何通过上传一个jsp页面控制和攻击你web站点的(含jsp代码)
- [Sample][Ajax][OneCode]一个简单的Ajax Web Chat站点示例