列举常见的WEB攻击,及解决方案

一、SQL注入

1、什么是SQL注入

  • 攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。

2、如何预防SQL注入

  • 使用预编译语句(PreparedStatement)
  • 对进入数据库的特殊字符(’"尖括号&*;等)进行转义处理,或编码转换。
  • 使用Mybatis框架时,使用#{},防止sql注入

二、XSS攻击

1、什么是XSS

  • XSS攻击:跨站脚本攻击(Cross-SiteScripting)。XSS是一种常见的web安全漏洞,它允许攻击者将恶意代码植入到提供给其它用户使用的页面中。XSS的攻击目标是为了盗取存储在客户端的cookie或者其他网站用于识别客户端身份的敏感信息。一旦获取到合法用户的信息后,攻击者甚至可以假冒合法用户与网站进行交互。

2、XSS通常可以分为两大类

  • 存储型XSS,主要出现在让用户输入数据,供其他浏览此页的用户进行查看的地方,包括留言、评论、博客日志和各类表单等。应用程序从数据库中查询数据,在页面中显示出来,攻击者在相关页面输入恶意的脚本数据后,用户浏览此类页面时就可能受到攻击。这个流程简单可以描述为:恶意用户的Html输入Web程序->进入数据库->Web程序->用户浏览器。
  • 反射型XSS,主要做法是将脚本代码加入URL地址的请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意链接就可能受到攻击。

3、如何预防XSS

  • 过滤特殊字符
    避免XSS的方法之一主要是将用户所提供的内容进行过滤。
  • 使用HTTP头指定类型
    w.Header().Set(“Content-Type”,“text/javascript”)
    让浏览器解析javascript代码,而不会是html输出。

三、DDOS

1、什么是DDOS

  • DDOS:分布式拒绝服务攻击(DistributedDenialofService),简单说就是发送大量请求是使服务器瘫痪。

2、如何预防DDOS

  • 利用DDoS防御产品的检测技术和清洗技术,检测技术就是检测网站是否正在遭受DDoS攻击,而清洗技术就是清洗掉异常流量。

四、CSRF

1、什么是CSRF

  • CSRF(Cross-site request forgery),跨站请求伪造。

理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。

2、CSRF的原理

  • 登录受信任网站A,并在本地生成Cookie。
  • 在不登出A的情况下,访问危险网站B

CSRF 就是网站 A 对用户建立信任关系后,在网站 B 上利用这种信任关系,跨站点向网站 A 发起一些伪造的用户操作请求,以达到攻击的目的。
而之所以可以完成攻击是因为B向A发起攻击的时候会把A网站的cookie带给A网站,也就是说cookie已经不安全了。

3、如何预防CSRF攻击

  • Synchronizer Tokens

    在表单里隐藏一个随机变化的token提交到后台进行验证,如果验证通过则可以继续执行操作

  • Hash加密cookie中csrf_token值

    采用的hash加密方法是JS实现Java的HashCode方法,得到hash值。前端向后台传递hash之后的csrf_token值和cookie中的csrf_token值,后台拿到cookie中的csrf_token值后得到hashCode值然后与前端传过来的值进行比较,一样则通过。

五、越权访问漏洞防护

1、什么是越权访问

  • 越权访问(BrokenAccessControl,简称BAC)是Web应用程序中一种常见的漏洞,分为垂直越权访问和水平越权访问。
  • 垂直越权是指不同用户级别之间的越权,如普通用户执行管理员用户的权限。
  • 水平越权是指相同级别用户之间的越权操作。

2、Web应用程序如果存在越权访问漏洞,可能导致以下危害:

  • 1)导致任意用户敏感信息泄露;
  • 2)导致任意用户信息被恶意修改或删除。

3、如何预防越权访问

  • 配置FILTER拦截器,对请求所有URL进行拦截,对于需要进行授权的URL进行权限校验,防止用户越权访问系统资源。

六、文件上传漏洞

  • 前台仅使用JS对文件后缀做了过滤,这只能针对普通的用户,而恶意攻击者完全可以修改表单去掉JS校验。
    项目中涉及上传下载未对文件大小以及类型进行验证,可能导致不良用户上传有害文件,危害服务器

解决方案:文件上传时在前台对文件后缀名进行验证,为避免通过特殊手段绕过了前端验证,在文件保存时再进行一次验证,即前后台同时验证的道理。

七、敏感信息泄露

  • 敏感信息泄露漏洞,是一种通过提交错误请求,使系统出现异常处理并报错,并且将系统程序、配置 等敏感信息泄露出来的漏洞。工程师发现系统搜索功能模块中普遍将系统的报错通printStackTrace 方法进行反馈,可造成报错信息如实的返回到前端。
    攻击者可以利用此漏洞收集系统报错中泄露的数据信息,包括处理函数,系统版本等等。可以通过此 类问题获得深入和更有目的性攻击的条件。

解决方案:建议统一处理错误页面,将错误信息存储在日志中。

八、短信轰炸

  • 发送短信验证码未进行次数限制,可以不断发送短信验证码,导致一定的经济损失。

解决方案:建议对发送的短信验证码进行频率限制,一段时间内仅仅发送多少条短信。

九、URL跳转漏洞

  • 任意URL恶意跳转可能会导致钓鱼等风险。

解决方案:改变传值方式,可以在前台传入对应type,根据type跳转到页面

Java网络安全常见面试题相关推荐

  1. java陷阱常见面试题_Java常见陷阱

    java陷阱常见面试题 总览 Java是一种极简主义的语言,具有比其他语言故意更少的功能,尽管如此,Java仍然具有产生奇怪效果的边缘情况,甚至具有令人惊讶的效果的一些常见情况也会使您轻而易举. 如果 ...

  2. Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3

    Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3 总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 ...

  3. Java基础常见面试题(一)

    Java基础常见面试题(一) 1. 为什么说 Java 语言"编译与解释并存"? 我们可以将高级编程语言按照程序的执行方式分为两种: 编译型 :编译型语言会通过编译器将源代码一次性 ...

  4. Java开发常见面试题详解(JVM)_2

    Java开发常见面试题详解(JVM)_2 JVM 问题 详解 JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots link 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认 ...

  5. Java工程师常见面试题集锦

    Java工程师常见面试题集锦(一)互联网人必看!(附答案及视频教程,持续更新) 2019年01月02日 14:01:14 CSDNedu 阅读数:653 大牛也怕面试题,尤其是基础题,在面试中如果出现 ...

  6. Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)

    Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...

  7. Java虚拟机常见面试题

    2019独角兽企业重金招聘Python工程师标准>>> 1.java引用的四种状态 强引用.软引用.弱引用.虚引用. 强引用 new一个Object存放在堆内存,然后用一个引用指向它 ...

  8. 合肥Java面试常考题_北大青鸟java 面试--常见面试题(中)

    上一文中,我们总结了java面试的基础,多线程,jvm的常见面试题,本文合肥北大青鸟合工大校区的袁老师继续介绍面试中网络.数据结构和算法.分布式理论和微服务的常见面试题. 一.网络 网络的话,主要集中 ...

  9. 北大java面试,北大青鸟java 面试--常见面试题(下)

    在之前的两篇文章中,我们已经提到了java面试中的常见问题,还有部分内容,合肥北大青鸟合工大校区的袁老师在本文也给出,希望对大家的面试过程有些帮助.这是我总结的最后一部分常见面试题:分别是数据库,基础 ...

最新文章

  1. Android JNI开发摘录(五)之对象引用处理
  2. 隐性饥饿谋定功能性农业-农业大健康·万建民:对接精准扶贫
  3. EF Code First Migrations数据库迁移
  4. c++ array stl_C ++ STL中带有示例的array :: front()函数
  5. 解决移动端touch事件与click冲突的问题
  6. shell 逐行读取文件
  7. 网站中应用QQ一键登录,详细讲解和范例
  8. 《解密并行和分布式深度学习:深度并发分析》摘要记录
  9. 为什么恢复后的文件打不开?U盘数据恢复常见问题
  10. 电脑右下角,电脑右下角的小喇叭不见了怎么办【解决方法】
  11. 【图论·习题】同余最短路:跳楼机
  12. 【一文带你读懂机器学习】逻辑回归原理
  13. jzxx2600野猫过生日
  14. macOS下不支持双面打印功能的惠普打印机如何进行手动双面打印
  15. Adb使用教程,看了教程后你也是玩机达人啦
  16. 编曲录音宿主软件-Cubase Elements 11 v11.0.30 WiN 元素版
  17. 迸发中的小i机器人,2018年多处开花
  18. 学了php能做什么工作吗,学会ps能做什么工作
  19. Electron 实现窗口置顶效果
  20. 如何在EDUIS中导出ETL字幕模板_教大家Edius如何设置导出mp4格式视频

热门文章

  1. 细节决定成败,素质决定高度
  2. 操作系统真相还原学习笔记
  3. 千分位格式C语言编程,金额数值的千分位显示格式
  4. win7系统开机出现OEM7GRUB 0.4.4提示无法进入系统的原因及两种解决方法
  5. 硬盘数据恢复工具 硬盘数据恢复需要多少钱
  6. 2022年java中级开发工程师最新面试题
  7. 【OpenGL】透视投影矩阵推导
  8. javaweb部署服务器 详细版
  9. SQL Server 2012 管理工具
  10. 黑马--Linux基础学习笔记