网站防护体系说明书随着IT技术的革新,各种病毒层出不穷,服务器和网站受到的攻击方式也越来越多。为了确保“XXXX”网站的安全运行,在维护时主要从网站源码、防火墙设置、安全软件等方面来加强网站的安全性和自主防御能力。一、网站源码自身防御体系网站的防御需要从源码开始做起,在代码开发时,开发人员要根据常见的Web攻击原理,在源码中添加有针对性的防御代码,做好网站防御体系的最后一道防线。(一)、SQL注入防护措施:1.对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双-进行转换等。2.尽量少使用动态拼装sql语句,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。3.不要直接使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。4.不要把机密信息直接存放,加密存放密码和敏感的信息。5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装6.sql注入的检测方法一般采取辅助软件或网站平台来检测,比如MDCSOFTSCAN等。使用国产服务器安全软件“服务器安全狗”可以有效的防御SQL注入。(二)、跨站脚本攻击(XSS)防护措施:1.对信息进行过滤和验证对用户提交的数据进行有效性验证,仅接受指定长度范围内并符合我们期望格式的的内容提交,阻止或者忽略除此外的其他任何数据。比如:电话号码必须是数字和中划线组成,而且要设定长度上限。过滤一些些常见的敏感字符,例如:‘“\javascriptexpressiononclick=onfocus;过滤或移除特殊的Html标签,例如:script,iframe,<for,>for,"for;过滤JavaScript事件的标签,例如onclick=,onfocus等。当需要将一个字符串输出到Web网页时,同时又不确定这个字符串中是否包括XSS特殊字符(如&‘”等),为了确保输出内容的完整性和正确性,可以使用编码(HTMLEncode)进行处理。2.DOM型的XSS攻击防御把变量输出到页面时要做好相关的编码转义工作,如要输出到script中,可以进行JS编码;要输出到HTML内容或属性,则进行HTML编码处理。根据不同的语境采用不同的编码处理方式。3.HttpOnlyCookie设置将重要的cookie标记为httponly,这样的话当浏览器向Web服务器发起请求的时就会带上cookie字段,但是在脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie。(三)、跨站请求伪造攻击(CSRF)防护措施:1.多采用POST请求,增加攻击的难度,用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,攻击者往往需要借助javascript才能实现。2.对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的,具体可以在会话中增加token认证,确保看到信息和提交信息的是同一个人。3.加入验证码,每次的用户提交都需要用户在表单中填写一个图片上的随机字符串,这个方案可以有效解决。(四)、HttpHeads攻击防御防护措施:避免这种攻击的方法,就是过滤所有的responseheaders,除去header中出现的非法字符,尤其是CRLF。服务器一般会限制requestheaders的大小。例如Apacheserver默认限制requestheader为8K。如果超过8K,AapcheServer将会返回400BadRequest响应,对于大多数情况,8K是足够大的。假设应用程序把用户输入的某内容保存在cookie中,就有可能超过8K.攻击者把超过8k的header链接发给受害者,就会被服务器拒绝访问。解决办法就是检查cookie的大小,限制新cookie的总大写,减少因header过大而产生的拒绝访问攻击。(五)、Cookie攻击防护措施:1.现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过JavaScript来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性。2.不要在Cookie中保存没有经过加密的或者容易被解密的敏感信息。3.对从客户端取得的Cookie信息进行严格校验。(六)、重定向攻击防护措施:1.对重定向域名设置白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之。2.在合法的url上加上token(认证令牌),重定向时进行验证。(七)、上传文件攻击防御措施:1.文件名攻击,上传的文件采用上传之前的文件名,可能造成客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击。2.文件后缀攻击,上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上。因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀。3.文件内容攻击,IE6有一个很严重的问题,它不信任服务器所发送的contenttype,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件,如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可能被执行,这种攻击,它的文件名和contenttype看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。可配套杀毒软件有效防御。二、服务器安全防护体系(一)、及时安装系统补丁不论是Windows还是Linux,任何操作系统都有漏洞,及时的打上补丁避免漏洞被蓄意攻击利用,是服务器安全最重要的保证之一。为了确保服务器及时更新补丁,每三天进行补丁扫描并安装。(二)、安装和设置防火墙对服务器安全而言,安装防火墙非常必要。防火墙对于非法访问具有很好的预防作用,但是安装了防火墙并不等于服务器安全了。在安装防火墙之后,你需要根据自身的网络环境,对防火墙进行适当的配置以达到最好的防护效果。(三)、关闭不需要的服务和端口服务器操作系统在安装时,会启动一些不需要的服务,这样会占用系统的资源,而且也会增加系统的安全隐患。对于一段时间内完全不会用到的服务器,可以完全关闭。对于期间要使用的服务器,也应该关闭不需要的服务,如Telnet等。另外,还要关掉没有必要开的TCP端口。(四)、定期对服务器进行备份为防止不能预料的系统故障或用户不小心的非法操作,必须对系统进行安全备份。除了对全系统进行每月一次的备份外,还应对修改过的数据进行每周一次的备份。同时,应该将修改过的重要系统文件存放在不同服务器上,以便出现系统崩溃时(通常是硬盘出错),可以及时地将系统恢复到正常状态。(五)账号和密码保护账号和密码保护可以说是服务器系统的第一道防线,目前网上大部分对服务器系统的攻击都是从截获或猜测密码开始。一旦黑客进入了系统,那么前面的防卫措施几乎就失去了作用,所以对服务器系统管理员的账号和密码需要定期更换且保证密码强度。(六)监测系统日志通过运行系统日志程序,系统会记录下所有用户使用系统的情形,包括最近登录时间、使用的账号、进行的活动等。日志程序会定期生成报表,通过对报表进行分析,你可以知道是否有异常现象。三、使用第三方安全服务软件“服务器安全狗”加强防护服务器安全狗是一款集服务器安全防护和安全管理为一体的综合性服务器工具。支持Windows全系列操作系统(Windows2003/Windows2008/Windows201232位64位)、Linux操作系统的服务器安全防护软件,从驱动层直接屏蔽攻击,保护服务器安全。服务器安全狗功能涵盖了服务器杀毒、系统优化、服务器漏洞补丁修复、服务器程序守护、远程桌面监控、文件目录守护、系统帐号监控、DDOS防火墙、ARP防火墙、防CC攻击、防入侵防篡改、安全策略设置以及邮件实时告警等多方面模块,为用户的服务器在运营过程中提供完善的保护,使其免受恶意的攻击、破坏。总之,网站的安全防护除了上述的有针对性的防护措施外,人工巡检也是十分重要的,因此在网站维护中,确定了定期巡检的机制,对容易被攻击的文件、配置、端口进行人工检测,在巡检中及时发现问题,及时解决。