跳到主要内容

安全研发面试题目

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)。

本章内容大纲