Java安全高频面试题及详细答案(实战版)_1.docxVIP

  • 0
  • 0
  • 约5.52千字
  • 约 8页
  • 2026-10-13 发布于河北
  • 举报

Java安全高频面试题及详细答案(实战版)_1.docx

Java安全高频面试题及详细答案(实战版)

一、Web通用安全类(高频必考)

1.什么是SQL注入?Java中如何彻底防止SQL注入?

参考答案:

SQL注入是攻击者通过在请求参数中拼接恶意SQL语句,绕过业务逻辑,非法查询、修改甚至删除数据库数据的漏洞。核心成因是代码直接拼接用户传入参数,未做过滤和预编译处理。

Java中核心防护手段:

1)杜绝字符串拼接SQL,统一使用PreparedStatement预编译语句,参数采用占位符?填充,数据库会先编译SQL模板,再传入参数,彻底隔离SQL语法和用户数据,杜绝注入;

2)MyBatis中严格使用#{}占位符,禁止使用${},#{}会自动预编译、参数转义,${}直接拼接字符串,存在注入风险;

3)特殊场景必须用${}时,手动做参数白名单过滤、特殊字符转义;

4)数据库层面做权限管控,业务账号只分配必要的增删改查权限,禁止使用root、最高权限账号连接业务库。

2.XSS漏洞是什么?分哪几类?Java后端如何防护?

参考答案:

XSS即跨站脚本攻击,攻击者向页面注入JS、HTML恶意脚本,用户访问页面时脚本执行,导致Cookie窃取、页面篡改、钓鱼诱导等风险。

分为三类:

1)存储型XSS:恶意代码存入数据库,所有访问对应页面的用户都会触发,危害最大;

2)反射型XSS:恶意代码通过URL参数传递,服务端直接返回响应,需要用户点

文档评论(0)

1亿VIP精品文档

相关文档