安全研发面试题目
Java基础
-
★★☆☆☆ equals与==的区别
-
★★☆☆☆ Java虚拟机区域如何划分?
-
★★☆☆☆ 方法重载与方法重写的区别?
-
★★☆☆☆ HashMap和HashTable、ConcurrentHashMap的区别?
-
★★☆☆☆ 进程和线程区别,进程间、线程间通信有哪几种方式?
-
★★★☆☆ Java BIO/NIO/AIO是什么?适用哪些场景?
-
★★★☆☆ 挑一个设计模式(工厂、单例、适配器、观察者)进行讲解
网络与多线程
-
★★★☆☆ synchorized如何使用?Object的wait、notify方法有什么作用?
-
★★★☆☆ sleep() 和 wait() 有什么区别?
-
★★★☆☆ 什么是幂等性?一般有什么方式实现?
数据结构与算法
-
★★★☆☆ 大文件小内存的排序如何做?
-
★★★☆☆ 有1亿个数字,其中有两个是重复的,如何快速找到?要求时间和空间最优。
-
★★★☆☆ 如何遍历二叉树?
-
★★★☆☆ 1亿个随机生成的无序整数,找出中间大小的值。
业务基础
-
★★☆☆☆ 调试工具及异常排查流程?
-
★★☆☆☆ 如何最大限度避免故障?
-
★★☆☆☆ 数据库索引结构,什么情况下应该建唯一索引?
-
★★☆☆☆ 数据库分页语句如何写?
业务安全
-
★★☆☆☆ HTTPS交互过程
-
★★★☆☆ 利用HTTPS交互过程中的特性,如何实现让常见抓包工具无法抓某个站点?
-
★★★★☆ 上面方式会引发什么新的问题,以及如何解决?
-
★★★☆☆ OAuth2.0交互过程及其中可能存在的配置不当安全风险
-
★★☆☆☆ 获取一个入参url,请求url地址的内容时应注意什么?
-
★★☆☆☆ 参数入库前应该如何过滤?
-
★★☆☆☆ 过滤器和拦截器原理和应用场景?
-
★★☆☆☆ SESSION 和 Cookie的区别?
-
★☆☆☆☆ SESSION ID如何不被Javascript读取?
-
★★★☆☆ CSRF的Token如何设计?
-
★★★☆☆ 同源策略?如何实现安全的跨域请求?
安全系统设计
-
★★★★☆ 如何设计一个高性能的漏洞扫描引擎?核心挑战是什么?
提示:并发控制(协程池/线程池)、去重(布隆过滤器)、指纹识别(避免无效扫描)、速率限制(防止影响业务)、结果去噪(减少误报)。
-
★★★★☆ 如何设计一套 RASP(运行时应用自我保护)系统?
提示:字节码插桩(Java Agent/ASM)、Hook 关键危险函数(exec/eval/File 读写等)、上下文感知(区分正常调用和攻击)、性能开销控制(采样/异步上报)。
-
★★★★☆ 如何设计一套代码审计平台,支持多语言、大规模代码库?
提示:AST 解析、污点分析(Source → Sink 追踪)、规则引擎可扩展、增量扫描(只扫变更代码)、误报过滤(上下文推理)。
-
★★★★☆ 安全 SDK 如何设计才能让业务方低成本接入且不易被绕过?
提示:接口最小化、默认安全配置、无感埋点(字节码增强)、防绕过机制(不依赖业务主动调用)、版本强制更新策略。
-
★★★★☆ 如何在不影响业务性能的前提下,对海量日志做实时安全分析?
提示:流式处理(Flink/Kafka Streams)、规则引擎热加载、分层处理(轻规则在边缘、重规则在中心)、采样降噪、背压控制。
-
★★★★★ 如何设计一套面向 AI Agent 的权限模型和调用链审计系统?
提示:最小权限工具白名单、调用链全链路追踪(TraceID)、异常行为阻断(超出预设边界自动熔断)、不可篡改的审计日志(append-only)。