网站应用攻击与防御

XSS攻击    

     跨站点脚本攻击,指黑客通过修改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作。
     攻击类型
            1、反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击目的。
            2、持久型,攻击者提交含有恶意脚本的请求,保存Web站点的数据库,用户浏览网页,恶意脚本被包含在正常页面中,达到攻击目的。
     目的
            偷取用户Cookie、密码等重要数据,伪造交易、盗取用户财产、窃取情报。
     防范
            1、消毒,对某些html危险字符转义或过滤。
            2、HttpOnly,即浏览器禁止页面js访问带有HttpOnly属性的Cookie。存放敏感信息的cookie添加HttpOnly属性,避免被攻击脚本窃取。

注入攻击

      1、SQL注入攻击
            攻击者在HTTP请求中注入恶意SQL命令(drop table users),服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。
            攻击者获得数据库表结构的方式:
                   a、开源;b、错误回显;c、盲注
            防范:
                   1、消毒,通过正则匹配,过滤请求数据中可能注入的SQL
                   2、参数绑定,最好的防注入方法。目前Ibatis,Hibernate等数据库访问层框架都实现SQL预编译和参数绑定,攻击者的恶意sql会被当作sql的参数,而不是sql命令被执行。
      2、OS注入攻击
CSRF攻击
      跨站点请求伪造,攻击者通过跨站请求,以合法用户身份进行非法操作。
      主要手法:利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。
      核心:利用了浏览器Cookie或服务器Session策略,盗取用户身份。
      防范:
              识别请求者身份。
              a、表单token;b、验证码;c、Referer check(HTTP请求头的Referer域中记录着请求来源,实例,图片防盗链,如果图片访问页面来源不是自己的网站网页就拒绝)。

其他攻击和漏洞

        Error Code(web配置跳转到专门的错误页面)、HTML注释(防范:代码review或自动扫描)、文件上传(防范:限制文件类型)、路径遍历(遍历系统未开放的目录和文件,防范,静态文件独立部署,其他文件不使用静态url访问)

WEB应用防火墙

        ModSecurity,开源,采用处理逻辑与攻击规则集合分离的架构模式。

相关推荐