网络安全面试题整理:适合转行和应届生的常见问题
一、引言
网络安全面试对转行人群和应届生而言,是展示能力、弥补经验差距的关键环节。面试官不仅关注技术知识,还重视学习能力、项目经验和安全意识。本文整理网络安全岗位(渗透测试、安全运营、应用安全等)的高频面试题,按 “基础理论、实操技能、项目经验、职业规划” 分类,每个问题提供 “参考答案思路”,帮你针对性准备,提高面试通过率。
二、基础理论类(应届生 / 转行必问)
1. 问题:什么是 SQL 注入?如何防范?
参考答案思路:
定义:Web 应用中,用户输入未过滤直接拼接 SQL 语句,导致攻击者可构造恶意 SQL 执行(如查询、修改、删除数据);
示例: s q l = " S E L E C T ∗ F R O M u s e r s W H E R E u s e r n a m e = ′ " . sql = “SELECT * FROM users WHERE username='”. sql=“SELECT∗FROMusersWHEREusername=′”._GET[‘name’].“'”;,输入’ OR ‘1’=‘1 拼接后变为 SELECT * FROM users WHERE username=’’ OR ‘1’=‘1’,查询所有用户;
防范方法:
参数化查询(预编译):如 PHP 的 PDO、Java 的 PreparedStatement,将用户输入作为参数传递,不直接拼接;
输入过滤:白名单过滤(仅允许合法字符),避免黑名单(易绕过);
最小权限:数据库账号仅授予必要权限(如查询权限,无删除 / 修改权限)。
2. 问题:XSS 漏洞分为哪几类?如何防御?
参考答案思路:
分类:
存储型 XSS:恶意脚本存储在数据库(如评论、留言),用户访问页面时执行(如论坛留言区);
反射型 XSS:恶意脚本通过 URL 参数传递,仅在当前请求中执行(如搜索框输入);
DOM 型 XSS:通过修改页面 DOM 结构触发(如document.write(location.hash),URL hash 含恶意脚本);
- 防御方法:
输出编码:用户输入输出到页面时,使用htmlspecialchars()(PHP)、StringEscapeUtils(Java)转义特殊字符(如<→<);
CSP(内容安全策略):通过 HTTP 头Content-Security-Policy限制脚本加载源(如仅允许自身域名的脚本);
禁用eval()、document.write()等危险 API(DOM 型 XSS 防御)。
3. 问题:什么是 CSRF 攻击?与 XSS 有什么区别?
参考答案思路:
CSRF 定义:利用用户已登录的会话(如 Cookie),诱导用户访问恶意页面,伪造用户请求执行操作(如转账、修改密码);
示例:用户登录银行后,访问攻击者的页面,页面自动发送http://bank.com/transfer?to=attacker&amount=1000请求,银行验证 Cookie 有效,执行转账;
与 XSS 的区别:
| 维度 | CSRF | XSS |
|---|---|---|
| 原理 | 利用已登录会话,伪造请求 | 注入恶意脚本,在用户浏览器执行 |
| 依赖漏洞 | 应用未验证请求来源 | 应用未过滤用户输入 |
| 操作主体 | 攻击者构造请求,浏览器自动发送 | 恶意脚本主动执行操作 |
- CSRF 防御:Token 验证、SameSite Cookie、Referer 检查。
4. 问题:什么是零信任架构?核心思想是什么?
参考答案思路:
定义:零信任(Zero Trust)是新一代安全架构,核心思想是 “永不信任,始终验证”,不基于网络位置(内网 / 外网)判断信任,所有访问都需验证;
核心原则:
最小权限:仅授予用户 / 设备完成任务必需的权限;
持续验证:每次访问都验证身份(如多因素认证)和设备安全状态(如是否有病毒);
深度防御:从身份、设备、网络、应用多维度防护;
与传统架构区别:传统架构 “内网可信,外网不可信”,零信任 “无论内外网,均需验证”;
落地技术:身份管理(IAM)、微隔离、终端检测(EDR)。
三、实操技能类(重点考察动手能力)
1. 问题:如何用 Nessus 扫描一台服务器的漏洞?步骤是什么?
- 参考答案思路:
环境准备:确保 Nessus 已激活(Essentials 版免费),目标服务器与 Nessus 在同一网络;
创建扫描任务:
登录 Nessus→Scans→Create a new scan→选择模板(如 Basic Network Scan);
配置目标(Targets):输入服务器 IP(如 192.168.1.100);
配置扫描选项(可选):端口范围(如默认 1-65535)、插件(仅勾选高危漏洞插件);
启动扫描:点击 Play 按钮,等待扫描完成(时间取决于服务器端口和插件数量);
分析结果:
查看 Vulnerabilities 分类(Critical/High/Medium);
点击漏洞查看详情(如 MS17-010 永恒之蓝漏洞),包含漏洞描述、修复建议;
验证漏洞:对高危漏洞(如永恒之蓝),用 Metasploit 手动验证,确认是否误报;
生成报告:Export→选择 HTML/PDF 格式,导出扫描报告。
2. 问题:用 Burp Suite 如何发现一个 Web 应用的 SQL 注入漏洞?
- 参考答案思路:
抓包配置:打开 Burp Suite,配置浏览器代理(如 127.0.0.1:8080),抓取 Web 应用的请求(如登录、搜索请求);
发送到 Intruder:将抓包的请求发送到 Intruder,选择 “Pitchfork” 或 “Sniper” 模式;
插入 Payload:
在参数值(如 username、id)后插入 SQL 注入测试 Payload(如’、and 1=1、and 1=2、union select 1,2,3);
示例:将id=1改为id=1’ and 1=1–+;
- 发送请求并分析响应:
观察响应差异:若插入and 1=1时页面正常,and 1=2时页面报错或内容缺失,说明存在 SQL 注入漏洞;
进一步验证:使用union select查询数据库信息(如id=1’ union select 1,database(),user()–+),若页面显示数据库名和用户名,确认漏洞存在;
- 自动化扫描(可选):使用 Burp Suite 的 Active Scan 功能,对目标 URL 发起自动扫描,Burp 会自动检测 SQL 注入、XSS 等漏洞,生成扫描报告。
3. 问题:如何检测并处置一台被入侵的 Linux 服务器?
- 参考答案思路:
- 紧急处置(防止进一步扩散):
隔离服务器:断开服务器外网连接(或通过防火墙限制仅管理员 IP 访问),避免攻击者继续操作;
保存现场:备份系统日志(/var/log/secure、/var/log/messages)、进程列表(ps aux > process.txt)、网络连接(netstat -tulnp > netstat.txt),用于后续分析;
- 入侵检测:
查看异常进程:用ps aux查找未知进程(如名称怪异、无路径的进程),用top查看 CPU / 内存占用异常的进程;
检查异常文件:查看/tmp、/var/tmp等临时目录是否有恶意脚本(如backdoor.sh),检查/etc/passwd是否新增可疑用户(如hack❌1001:1001::/home/hack:/bin/bash);
分析日志:查看/var/log/secure是否有异常 SSH 登录(如陌生 IP、多次失败后成功登录),查看/var/log/httpd/access.log是否有恶意请求(如命令执行 Payload);
- 清除与修复:
终止恶意进程:kill -9 [恶意进程ID],若进程反复启动,检查是否有定时任务(crontab -l查看);
删除恶意文件:rm -f [恶意文件路径],注意备份可疑文件用于溯源;
修复漏洞:若因系统漏洞入侵(如永恒之蓝),立即安装补丁(yum update);若因弱口令,修改所有用户密码并启用 SSH 密钥登录;
- 恢复与监控:
恢复数据:从干净备份中恢复被篡改的文件(如 Web 目录、配置文件);
加强监控:部署 IDS/IPS 或开启系统审计(auditd),监控服务器后续操作,防止再次入侵。
四、项目经验类(转行 / 应届生重点准备)
1. 问题:你做过的最有成就感的网络安全项目是什么?请讲一下流程和收获。
- 参考答案思路(以 “Web 应用代码审计项目” 为例):
项目背景:学校课程设计中,对开源项目 Discuz! X3.4 进行代码审计,目标是发现并修复 SQL 注入、XSS 等漏洞;
项目流程:
准备阶段:搭建 LAMP 环境(PHP 5.6+MySQL 5.5),部署 Discuz! 源码,安装 Seay 代码审计工具;
审计阶段:用 Seay 搜索危险函数(如mysql_query、eval),定位到forum_post.php中$pid参数未过滤,存在 SQL 注入漏洞;
验证阶段:构造 Payload(pid=1’ union select 1,2,user(),4–+),通过 Burp Suite 发送请求,成功获取数据库用户名;
修复阶段:将mysql_query替换为参数化查询DB::query,对用户输入进行过滤,提交修复代码到 GitHub;
- 项目收获:
技术层面:掌握代码审计方法和 SQL 注入防御技巧,熟练使用 Seay、Burp Suite 工具;
思维层面:培养 “漏洞发现→验证→修复” 的闭环思维,学会从开发者视角思考安全风险;
成果输出:形成审计报告,包含漏洞详情和修复方案,可作为面试作品集。
2. 问题:没有实际工作经验,如何证明你的网络安全能力?
- 参考答案思路:
学习成果:展示系统化学习记录(如思维导图、笔记),证明对 Web 漏洞、工具使用的掌握(如 “我整理了 SQL 注入的 10 种利用方式和防御方案”);
实战项目:分享个人练手项目(如 “用 Docker 复现 Log4j2 漏洞,编写 PoC 脚本并提交到 GitHub”“搭建个人 SOC 系统,实现日志监控”),提供项目链接或操作截图;
竞赛参与:提及 CTF 竞赛经历(如 “参加攻防世界新手赛,解出 5 道 Web 题目,排名前 50%”),展示竞赛得分截图;
认证 / 文章:若有入门认证(如 CEH),可提及;若无,可分享技术文章(如 “在 CSDN 发表《Nessus 漏洞扫描入门》,阅读量 1000+”),证明总结和输出能力。
五、职业规划类(考察稳定性与发展潜力)
1. 问题:你为什么想转行做网络安全?未来 3 年的职业规划是什么?
- 参考答案思路:
- 转行原因(结合自身背景):
若有运维背景:“之前做 Linux 运维时,常遇到服务器被暴力破解的问题,发现网络安全是保障系统稳定的核心,且行业人才缺口大,因此决定转行,将运维的系统经验与安全结合”;
若为应届生:“大学学过《计算机网络》,对网络攻击与防御感兴趣,通过 CTF 竞赛发现安全领域的挑战性和成就感,希望从事渗透测试岗位,为企业提供安全保障”;
- 3 年职业规划:
短期(1 年):熟悉渗透测试流程,掌握 Burp Suite、Nessus、Metasploit 等工具,独立完成小型 Web 应用的渗透测试;
中期(2 年):深入学习内网渗透和代码审计,考取 CISP-PTE 认证,能带领小团队完成企业级渗透测试项目;
长期(3 年):成为渗透测试专家,研究物联网或工控安全方向,为企业提供定制化安全解决方案。
2. 问题:网络安全行业技术更新快,你如何保持学习?
- 参考答案思路:
固定学习习惯:每天花 1 小时阅读安全资讯(如 FreeBuf、Krebs on Security),每周花 3 小时复现 1 个新漏洞(如关注 CVE Details,复现最新漏洞);
工具与社区:加入安全学习群(如 “网络安全交流群”),参与 GitHub 开源项目(如贡献漏洞扫描脚本),与同行交流技术;
实践驱动:每月做 1 个实战项目(如 “分析一款智能摄像头固件”“搭建零信任测试环境”),将新技术应用到实践中,避免 “只学不用”;
总结输出:每学习一个知识点,撰写技术笔记(如 “用 Markdown 记录 Nessus 扫描技巧”),定期发表到博客,通过输出倒逼输入。
网络安全学习路线&学习资源![]()
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
【“脚本小子”成长进阶资源领取】
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
网络安全学习路线&学习资源![]()
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!