奇安信2020秋招IT工程师笔试题复盘:安全岗考点与备考思路 📅 发布时间:2026/8/29 7:03:13 👁 浏览次数: 看到有人在整理奇安信2020秋招IT工程师试卷2的回忆版我脑子里立刻浮想起当年坐在考场里那三个小时。说实话这套题在当年的校招圈里口碑很两极投过安全岗的人觉得它“有内味儿”只刷过LeetCode的人则被问懵。它不像普通互联网公司的笔试卷通篇算法八股而是把网络基础、Web攻防、系统排错、编程能力搅在一起更像在给安全工程师岗位画一幅能力画像。无论你准备投的是运维、测试、实施还是安全研发方向这套卷子都值得好好拆一遍尤其是里面那些“看起来简单、一答就错”的场景题。这篇文章按我的回忆尽量还原试卷结构和考点把每类题型的解题思路和备考方法都写透希望能给你省点弯路。1. 为什么奇安信要出这样一张“非典型”IT笔试卷1.1 安全业务决定了出题口味不只看你会不会更看你会不会找问题普通互联网公司笔试喜欢考“在一个理想条件下怎么把系统做得更快”奇安信这类安全公司考的是“在一个充满恶意输入的环境里系统怎么才能不被打穿”。这个差异直接体现在题目气质上。比如同样是给一段代码普通公司可能问“这段代码的时间复杂度是多少”奇安信可能问“这段代码在处理用户提交的filename参数时会造成什么安全风险如何修复”。我当年做这张卷子时最大的感受是每一道跟代码相关的题都在逼我站在攻击者的角度想问题。如果你只有正向开发的思维没有逆向找茬的敏感度即使基础八股背得再熟也很难拿高分。这种出题风格不是奇安信独有凡是主营业务是安全产品、安全服务的公司笔试基本都走这条路子。1.2 试卷结构长什么样四类题型加一条隐藏主线从我记忆里的版本来看试卷2整体分四块。第一块是客观题单选加多选大概30道覆盖网络基础、操作系统、数据库和少量安全常识分值不高但题量大。第二块是简答六到八道集中考安全原理和故障排查思路。第三块是场景分析给一段代码或日志让还原问题、说明原因、给修复方案这是整张卷子的分水岭。第四块是编程题一到两道难度控制在力扣中等以下但要求能写出完整可运行的代码。我做了个表方便你对号入座模块大致题量建议用时考察重点客观题30题左右40分钟网络、系统、数据库基础简答题6-8题50分钟安全原理、排错思路场景分析3道左右50分钟漏洞分析、日志排查编程题1-2道40分钟工程实现能力这个结构其实藏了一条主线先验证你的基础底盘再验证你的安全敏感度最后验证你把思路落成代码的能力。每一步都在筛人。有些人时间分配不合理在客观题上纠结太久导致后面场景题草草两行收场非常可惜。我的建议是客观题遇到没把握的直接标记先保证后面大分值题有充足时间回头再纠结。1.3 从题目安排看公司的“筛人标准”我复盘的时候发现这套卷子的难度不在于单题有多深而在于覆盖面特别广。客观题里的很多概念学校课程里不会主动教全靠平时积累比如TCP拥塞控制的几个阶段、Linux文件权限的实际计算课堂上提过但做对需要真懂。到简答题标准答案感变弱阅卷人更看重你能不能把话说清楚。到了场景分析题基本没有标准答案考的是思路是否完整、表述是否专业。这种层层递进的安排说明公司想筛出三类人基础扎实、懂安全、能沟通。你如果只擅长其中一个维度很可能在某一环被卡住。这也是我建议把题目背后的逻辑想明白再去备考的原因盲目刷题效率很低尤其是你同时投了普通互联网公司和安全公司的时候用同一套复习策略去应对两种风格完全不同的笔试很容易两边都够不着。2. 核心考点拆解一份可以直接照着复习的清单2.1 网络基础送分题和送命题往往只有一线之隔这套卷子的客观题里网络部分占比很高。TCP三次握手和四次挥手几乎是必考别只背标志位要能画出状态图、说出每个状态的含义。我印象里有一道题问“客户端主动断开连接后服务端会经历哪些TCP状态”很多人从TIME_WAIT开始答忽略了CLOSE_WAIT这就是基础不牢的典型扣分点。HTTP状态码也是高频考点尤其是301、302、403、404、502这些常见码的区别以及出现502时先查哪一层。最好能结合场景答比如“用户访问页面返回502通常先确认后端服务进程是否存活再检查网关配置”比单纯写“502是Bad Gateway”给分高得多。加密方面建议把对称加密、非对称加密、哈希三者的区别和应用场景整理成表再顺着HTTPS证书验证流程把TLS握手大概过一遍。这部分不要求你写全每个报文细节但至少要知道证书是谁签的、怎么验的、私钥在谁手里。2.2 Web安全SQL注入、XSS、路径遍历这“铁三角”必须拿下Web安全是整套卷子的重头三道题里至少有一道从这里面出。SQL注入要掌握四个层次原理是用户输入被拼进SQL语句判断是单引号报错、and 11返回不同利用是联合查询、报错注入、盲注修复是参数化查询、最小权限账号。XSS要分清反射型、存储型、DOM型并各想一个典型场景比如存储型在评论区、DOM型在location.hash。路径遍历是奇安信这类安全公司特别爱考的点原理是文件路径里的../没有被过滤攻击者靠不断回溯目录读取任意文件。修复思路可以从三层讲输入侧做白名单校验处理侧对路径做规范化和前缀校验架构侧让文件服务走独立存储、不直接暴露真实路径。这三个漏洞经常被拿来一起对比记忆区别在于SQL注入打的是数据库层XSS打的是浏览器端路径遍历打的是文件系统。漏洞核心成因典型危害常见修复SQL注入用户输入拼接SQL拖库、绕过登录参数化查询XSS用户输入未转义输出窃取Cookie、钓鱼输出编码CSP路径遍历../未过滤拼接读取任意文件路径规范化白名单这些知识点光背不行还要亲手在靶场里打一遍后面我详细讲具体操作。2.3 Linux与系统运维安全工程师的第二母语如果你投的是运维或安全运维方向这部分比重会明显加大。高频考点包括文件权限位rwx的含义和chmod的数值计算、常用排查命令grep、awk、find、ss、top、journalctl的典型用法以及系统服务的启停和日志定位。有一道简答题我当时印象很深给出一段系统日志问如何根据日志判断是否被暴力破解以及后续处理步骤。这个题没有唯一答案但聪明的答法是先讲看什么字段比如登录失败的IP、时间频率、账号名再讲如何封禁和溯源最后讲如何加固比如禁用root远程登录、改默认端口、配置密钥登录。真正的基础不是会敲命令而是面对一个陌生环境能按“先看状态、再看日志、最后定位问题”的思路推进。哪怕你投的不是运维岗这套思路在场景分析题里也一样受用。2.4 编程题考察的不是竞赛能力而是工程化表达编程题通常放在最后难度真不算高但很考验基本功。我印象里的题目大概是一道字符串处理加一道数组操作。这类题想拿满分关键是代码要完整边界条件要判断输入为空怎么办参数不合规怎么办都要写清楚。比如写一个函数判断输入字符串是否包含路径穿越特征算法不难但如果你只写了核心判断没处理跨平台情况面试官一眼就能看出你平时写代码是否严谨。这里我给个小建议笔试代码宁可多写几行也不要图简洁省略边界阅卷大概率是人工看你要让看的人觉得“这人是能直接上项目的”。如果时间允许还能在注释里补一句优化思路比如用最长公共前缀去替代正则匹配这类小细节很加分。2.5 安全产品认知主观题里藏着产品思维的分水岭卷子末尾通常有一道主观题问“谈谈你对终端安全软件、代码审计工具的理解”之类的开放题。很多人的答案停在“我用过、装过、觉得还行”这种回答约等于没答。合格的思路是从产品价值出发讲清楚它解决什么问题、核心能力有哪些。比如终端安全软件至少可以讲进程管控、外设管理、漏洞修复、日志上报这几个维度代码审计工具可以讲静态分析、规则引擎、误报率这些方向。网上有个热词叫“奇安信天擎卸载密码”我看不少人搜这个但站在求职者的角度我劝你别在这上面花时间。企业终端软件设卸载密码是合规管控的常规设计目的是防止人员随意绕过安全策略笔试不可能考这个你在面试里说天天研究怎么卸载反而减分。另外如果对代码审计感兴趣找开源的静态扫描工具练手就好很多原理是相通的并不需要纠结具体某个商业产品的下载渠道。2.6 数据库和操作系统基础客观题里的“隐形分值”这一块很容易被忽视但客观题里占比不低。数据库方面MySQL的索引原理、事务ACID特性、慢查询日志怎么看是出现频率很高的点。操作系统方面进程和线程的区别、死锁的四个必要条件、虚拟内存和物理内存的映射关系也都属于客观题的常客。这些知识点不难但如果你只复习安全相关的内容很容易在这里丢基础分。我的经验是每天抽半小时过一遍知识点卡片把“索引为什么用B树”“死锁怎么避免”这类问题用一句话讲清楚持续两周就能明显提分。安全岗位说到底还是IT工程师岗位基础底盘决定了你能走多远这部分不能丢。3. 实操复盘四道有代表性的题手把手讲一遍思路3.1 路径遍历场景题从原理到修复三种答题深度原题大概长这样某文件下载接口根据用户传入的filename参数读取文件攻击者传入“../../../../etc/passwd”成功读到系统文件。请回答为什么会这样给出修复方案。第一层答法是直接说“参数没过滤所以可以跨越目录”这能拿一点分但显得单薄。我推荐按三步展开先说原理filename被直接拼接到文件路径后面操作系统解析路径时按..返回上级目录一路穿越出去再给代码层面的修复对用户输入做realpath规范化并强制前缀必须以允许的目录开头或者干脆用白名单文件名最后说架构层面更稳妥的做法是先查数据库取得真实文件ID再通过ID映射到服务器路径彻底隔离用户输入和文件系统。如果能把“用户输入永远不可信”这句话贯穿到所有环节这道题基本就稳了。3.2 SQL注入实操题攻击路径和防护方案要一起吃透另一道印象深的题是给了一个登录接口问“在用户名处输入单引号页面报数据库语法错误接下来你会怎么测试”这题的考察点不是让你真的拿到数据而是看你有没有攻击者的分析框架。我的答题顺序是先验证注入点构造闭合尝试比如and 11和and 12观察页面差异再根据反馈类型选择利用方式报错信息详细就尝试报错注入页面无明显变化就尝试布尔盲注或时间盲注同时用order by判断字段数量为联合查询做准备。最后一定要落回防御讲参数化查询为什么能防注入、数据库账号为什么要最小权限、WAF为什么只能作为临时缓解。安全公司要的不是只会“打”的人而是既会打又会防的人这题的完整答法正好体现这点。3.3 日志题把零散请求按时间线串成攻击故事场景分析题里还有一类是日志分析给出一段Nginx访问日志让你判断发生了什么。我当时看到的日志里包含几个特征先有大量针对后台路径的扫描请求出现404然后有一个上传接口返回200接着出现执行系统命令的请求参数再往后是外联地址的回连记录。这其实是一条完整的攻击链信息收集、初始突破、命令执行、权限维持。答题时不要逐条念日志而是先总结攻击者的最终目的再按时间线分阶段说行为最后给出止损方案发现异常后第一时间切断外联、封禁攻击IP、排查被上传的文件、复盘漏洞点并修复。这种题没有标准答案但逻辑越完整越能证明你有实战意识。哪怕最后的一两步卡住了也要把自己的猜测和依据写出来阅卷人更看重推理过程。3.4 编程题参考实现写成什么样才能让阅卷人满意以“检测字符串是否包含路径穿越特征”为例我给出一个工程化写法。核心思路是先把输入按路径规范化再判断是否跳出限定目录。下面是JavaScript版本function isTraversalValid(input, baseDir) { if (!input || typeof input ! string) { return false; } // 过滤空字节和非法字符 if (input.indexOf(\0) ! -1) { return false; } // 规范化路径解析..和. const path require(path); const fullPath path.resolve(baseDir, input); // 判断解析后的路径是否仍位于baseDir之下 return fullPath.startsWith(path.resolve(baseDir) path.sep); }这段代码好在哪第一它没有只做简单的关键字过滤而是用path.resolve做规范化让../真正被计算不容易被编码绕过的花招骗过。第二它加入了空字节检查因为很多语言底层遇到\0会截断字符串。第三最后用路径前缀校验保证越权无效。笔试里写成这样既体现了安全意识又体现了工程习惯。你甚至可以在注释里补一句“线上建议同时限制下载目录的访问权限”这就把代码题做成了加分题。如果你更熟悉Python也可以写os.path.realpath加startswith的判断思路完全一致关键是让阅卷人看到你懂边界、懂业务。4. 那些年我替你先踩过的坑备考与实战避坑指南4.1 时间分配不同基础的人复习重心完全不同备考这套卷子最忌讳的就是“一刀切”。我见过网络基础扎实的人死磕漏洞原理结果客观题里的TCP状态变化反而丢分也见过安全专业出身的人最后栽在编程题的边界处理上。如果你是科班出身、网络基础好我建议把时间大头放在Web安全复盘上多去靶场练注入和XSS如果你是非科班转岗先花两周把TCP/IP、HTTP、Linux权限和常用命令补齐再进入安全题如果你明确投运维或测试方向那就多准备日志排查、部署配置、测试用例设计。说白了先给自己做个能力体检再安排复习顺序效率远高于从第一页开始刷。我当时给自己做了个简单的自测表把每类知识点的熟练程度分为“会背”“会用”“能讲给别人听”三档然后针对最低的那档集中补一个月下来提升非常明显。4.2 我踩过的三个真实深坑第一个坑是只背答案不推过程。我第一轮复习时背了一堆“为什么参数化查询能防SQL注入”的标准表述结果题目换成“在ORM框架里怎么用参数化查询”就懵了。后来我改成动手搭靶场把自己当攻击者一遍遍试效果天差地别。第二个坑是轻视主观题觉得写两行就有分。实际阅卷是按点给分的一道场景题你能写出原理、危害、修复三个维度跟只写一句话差距是决定性的。第三个坑是忽略岗位差异。同一套复习方案去投所有岗位很吃亏比如投运维岗却在编程题上死磕动态规划就是方向错了。现在回头看当年让我拉开差距的不是多会刷题而是能从每道题里往深挖一层把一道路径遍历的题挖到文件系统、字符编码、权限模型三个层面。这套思维习惯比答案本身值钱得多。4.3 常见问题速查表笔试现场最容易卡壳的几个点我把备考群里大家问得最多的问题整理成一个表格每个都附上解决思路问题原因解决思路一句话避坑502 Bad Gateway反复出现网关连不上后端服务先查后端端口进程再看超时配置别一上来就重启网关SQL加了引号还是被注入输入可编码绕过参数化严格输入校验双保险不要迷信单层防护日志里大量登录失败正在被暴力破解封IP、关root远程登录、开密钥认证先止损再溯源代码题没写边界被判低分只写了核心逻辑补空值、类型、跨平台判断工程化表达很重要主观题答得很空没有分维度展开按原理-危害-修复-扩展顺序答让阅卷人看见思路另外想多说一句网上有很多人搜“没密码怎么删除奇安信”之类的内容我理解这种情绪但咱们换到求职场景里想想你本来就是去安全公司面试的却在公开讨论怎么绕过人家的终端管控这等于主动把自己的安全意识拉低。笔试考的是你怎么理解和构建安全能力不是怎么拆掉安全能力方向千万别跑偏。至于那些考证热词比如信息安全工程师、系统集成项目管理工程师这些证书适合长期从业规划校招笔试阶段优先级不算高有精力可以考但不能指望用它替代对基础知识的掌握。4.4 如果再给我一次机会我会额外做这三件事复盘完这套卷子我认为真正拉开差距的不是刷了多少题而是有没有把题目转化成系统性的能力。第一我会给自己搭一个本地靶场把SQL注入、XSS、路径遍历每个漏洞都亲手打一遍再把修复方案写进代码里。第二我会强迫自己每做一道主观题都按“背景-原因-影响-修复-验证”五段式口头讲一遍这样笔试和面试能同时准备。第三我会把网络基础和Linux命令的常见问题做成错题本在笔试前一天集中过一遍减少客观题丢分。这三点不需要多高深的技术但坚持两个月效果非常明显。如果你正打算投下一届秋招我建议你把这套卷子当作起点而不是终点把每道错题反推成知识点再亲手验证一遍这比任何考前冲刺班都值。