Java Web安全

1. SQL注入

  A. 定义:SQL注入就是通过注入SQL命令来进行攻击,是攻击者把SQL命令插入到Web表单或请求参数的查询字符串里面提交给服务器,从而让服务器执行该SQL;

  B. 防御:使用预处理PreparedStatement;

      使用正则表达式过滤掉字符中的特殊字符。

 

2. XSS攻击

  A. 定义:XSS(Cross Site Scripting),即跨站脚本攻击,它是 Web 程序中常见的漏洞;

  B. 攻击原理:攻击者往 Web 页面里插入恶意的脚本代码(Css代码、Javascript代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户Cookie、破坏页面结构、重定向到其他网站等;

  C. 攻击方式:反射型攻击、存储型攻击、DOM攻击;

  D. 防御:对用户输入的数据进行编码和过滤。

 

3. CSRF攻击

  A. 定义:CSRF(Cross Site Request Forgery),即跨站请求伪造攻击,指攻击者通过跨站请求,以合法的用户身份进行非法操作(如转账或发帖等);

  B. 攻击原理:利用浏览器的Cookie或服务器的Session,盗取用户身份,从而进行操作;

  C. 防御:验证请求来源地址;

      关键操作添加验证码;

      在请求地址添加token并验证。

 

4. DDoS攻击

  A. 定义: DDoS(Distributed Denial of Service),即分布式拒绝服务攻击,指处于不同位置的多个攻击者同时向一个或数个目标发动攻击;

  B. 攻击原理:DDoS是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布的、协同的大规模攻击方式,单一的DoS攻击一般是采用一对一方式的,它利用网络协议和操作系统的一些缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务;

  C. 攻击方式:SYN洪水攻击、UDP洪水攻击、DNS QUERY洪水攻击等;

  D. 防御:高防服务器;

      黑名单;

      DDoS清洗;

      CDN加速

 

5. 点击劫持

  A. 定义:是一种视觉上的欺骗手段,攻击者将一个透明的、不可见的iframe覆盖在一个网页上,通过调整iframe页面位置,诱使用户在页面上进行操作,在不知情的情况下用户的点击恰好是点击在iframe页面的一些功能按钮上;

  B. 攻击方式:图片覆盖攻击、Flash点击劫持、拖拽劫持、截屏劫持;

  C. 防御:可在Nginx上配置X-Frame-Options安全头的值。

 

6. 其他—登录接口

  A. 暴力破解:通过各种方式获得了公网网站的用户名后,通过编写程序来遍历所有可能的密码,直至找到正确的密码;

    验证码:可以过滤掉一些非法的攻击,但是很难做到防止机器人;

    登录限制:可以解决用户密码被爆破的问题,但是攻击者可以让网站所有的用户都无法登录;

    IP限制:在一定程度上可以解决问题,由于很多企业使用同一个出口IP,会导致误杀其他正常的用户;

    手机验证:双重验证,这是比较好的方式;

  B. 中间人攻击:A和B在通讯过程中,攻击者通过嗅探、拦截等方法获取或修改A和B的通讯内容;

    HTTPS:内容加密、数据完整性、身份验证;

    敏感数据加密传输:非对称加密等;

  C. 其他

    记录操作日志;

    异常操作或登录提醒;

    拒绝弱密码;

    防止用户名被遍历;

 

posted @ 2019-06-20 12:47  如幻行云  阅读(423)  评论(0编辑  收藏  举报