Java网络安全常见面试题
列举常见的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网络安全常见面试题相关推荐
- java陷阱常见面试题_Java常见陷阱
java陷阱常见面试题 总览 Java是一种极简主义的语言,具有比其他语言故意更少的功能,尽管如此,Java仍然具有产生奇怪效果的边缘情况,甚至具有令人惊讶的效果的一些常见情况也会使您轻而易举. 如果 ...
- Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3
Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3 总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 ...
- Java基础常见面试题(一)
Java基础常见面试题(一) 1. 为什么说 Java 语言"编译与解释并存"? 我们可以将高级编程语言按照程序的执行方式分为两种: 编译型 :编译型语言会通过编译器将源代码一次性 ...
- Java开发常见面试题详解(JVM)_2
Java开发常见面试题详解(JVM)_2 JVM 问题 详解 JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots link 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认 ...
- Java工程师常见面试题集锦
Java工程师常见面试题集锦(一)互联网人必看!(附答案及视频教程,持续更新) 2019年01月02日 14:01:14 CSDNedu 阅读数:653 大牛也怕面试题,尤其是基础题,在面试中如果出现 ...
- Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)
Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...
- Java虚拟机常见面试题
2019独角兽企业重金招聘Python工程师标准>>> 1.java引用的四种状态 强引用.软引用.弱引用.虚引用. 强引用 new一个Object存放在堆内存,然后用一个引用指向它 ...
- 合肥Java面试常考题_北大青鸟java 面试--常见面试题(中)
上一文中,我们总结了java面试的基础,多线程,jvm的常见面试题,本文合肥北大青鸟合工大校区的袁老师继续介绍面试中网络.数据结构和算法.分布式理论和微服务的常见面试题. 一.网络 网络的话,主要集中 ...
- 北大java面试,北大青鸟java 面试--常见面试题(下)
在之前的两篇文章中,我们已经提到了java面试中的常见问题,还有部分内容,合肥北大青鸟合工大校区的袁老师在本文也给出,希望对大家的面试过程有些帮助.这是我总结的最后一部分常见面试题:分别是数据库,基础 ...
最新文章
- Android JNI开发摘录(五)之对象引用处理
- 隐性饥饿谋定功能性农业-农业大健康·万建民:对接精准扶贫
- EF Code First Migrations数据库迁移
- c++ array stl_C ++ STL中带有示例的array :: front()函数
- 解决移动端touch事件与click冲突的问题
- shell 逐行读取文件
- 网站中应用QQ一键登录,详细讲解和范例
- 《解密并行和分布式深度学习:深度并发分析》摘要记录
- 为什么恢复后的文件打不开?U盘数据恢复常见问题
- 电脑右下角,电脑右下角的小喇叭不见了怎么办【解决方法】
- 【图论·习题】同余最短路:跳楼机
- 【一文带你读懂机器学习】逻辑回归原理
- jzxx2600野猫过生日
- macOS下不支持双面打印功能的惠普打印机如何进行手动双面打印
- Adb使用教程,看了教程后你也是玩机达人啦
- 编曲录音宿主软件-Cubase Elements 11 v11.0.30 WiN 元素版
- 迸发中的小i机器人,2018年多处开花
- 学了php能做什么工作吗,学会ps能做什么工作
- Electron 实现窗口置顶效果
- 如何在EDUIS中导出ETL字幕模板_教大家Edius如何设置导出mp4格式视频