51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

请列举至少5种常见的Web攻击类型(如XSS、SQL注入、CSRF等),并分别说明其原理和对应的防御措施。结合360浏览器或360安全卫士的产品场景,分析这些攻击如何影响用户体验或系统安全?

360安全开发初级工程师难度:中等

答案

1) 【一句话结论】

常见的Web攻击(如XSS、SQL注入、CSRF、SSRF、文件上传)通过利用Web应用漏洞,可能窃取用户数据、破坏系统或影响用户体验,需结合输入验证、参数化查询、令牌机制、白名单过滤等防御,360浏览器(用户输入安全、脚本拦截)和安全卫士(数据库检测、文件过滤)需针对性设计,保障用户安全。

2) 【原理/概念讲解】

以**XSS(跨站脚本攻击)**为例,分三种类型:

  • 反射型:用户输入后立即执行(如搜索框输入脚本),其他用户访问时触发,类比“即时生效的病毒”;
  • 存储型:脚本存储在服务器(如用户评论),用户访问时执行,类比“服务器里的定时炸弹”;
  • DOM型:通过DOM操作执行(如点击链接触发),类比“隐藏的触发器”。

SQL注入原理:攻击者将恶意SQL语句注入输入字段,绕过验证直接执行数据库操作(如查询、插入、删除),类比“把用户输入当作SQL语句的一部分,导致数据库结果被篡改”。

**CSRF(跨站请求伪造)**原理:伪造用户已认证的请求,模拟操作(如转账、修改密码),类比“用户登录后,攻击者发送一个‘隐形’的转账链接,用户不知情下执行”。

**SSRF(服务器端请求伪造)**原理:利用服务器解析用户输入的URL,访问本地或外部资源(如输入http://localhost:8080获取本地文件),类比“服务器被‘欺骗’去访问本地文件,导致信息泄露”。需注意合法场景(如图片验证码),防御需区分合法请求。

文件上传漏洞原理:允许上传恶意文件(如.php),服务器执行代码,类比“用户上传一个‘伪装’的图片文件,实际是恶意脚本,导致系统被控制”。

3) 【对比与适用场景】

攻击类型定义原理简述典型场景防御重点
XSS跨站脚本攻击恶意脚本注入页面,用户访问时执行用户输入内容(评论、搜索)、动态页面输入验证、输出编码、CSP(如script-src 'self')、沙箱
SQL注入SQL注入攻击输入绕过验证,执行数据库操作登录、注册、查询(如用户名密码验证)参数化查询(如Python SQLAlchemy的execute)、预编译语句、白名单
CSRF跨站请求伪造伪造用户已认证请求,模拟操作已登录页面(支付、修改密码)CSRF令牌(随机字符串)、Referer检查、SameSite cookie(如Strict)
SSRF服务器端请求伪造服务器解析用户输入的URL,访问资源输入控制URL(图片验证码、文件上传)白名单过滤(允许的域名列表)、IP过滤、请求头检查
文件上传文件上传漏洞未验证文件类型/内容,上传恶意文件执行文件上传功能(头像、附件)白名单(允许的文件类型,如.jpg)、文件内容检查(如filetype)、文件存储隔离

4) 【示例】

  • XSS反射型:用户搜索框输入<script>alert('hacked')</script>,其他用户搜索时,脚本在浏览器中执行,弹出警告并可能窃取Cookie。
  • SQL注入:登录表单输入用户名admin,密码' or '1'='1 --,绕过验证,查询所有用户数据。
  • CSRF:用户登录后,攻击者发送一个包含伪造转账请求的链接(如https://360.com/transfer?amount=1000&to=attacker),用户点击后,执行转账。
  • SSRF:输入http://localhost:8080,服务器访问本地文件/etc/passwd,返回文件内容。
  • 文件上传:上传文件名为1.php的文件,服务器执行该脚本,导致系统被控制(假设服务器配置为执行.php文件)。

5) 【面试口播版答案】

“常见的Web攻击有XSS、SQL注入、CSRF、SSRF、文件上传。以XSS为例,反射型是用户输入后立即执行,比如搜索框输入脚本,其他用户搜索时被触发,可能窃取Cookie。防御用CSP限制资源加载,输入验证过滤脚本。360浏览器通过CSP和输入过滤拦截恶意脚本,保护用户隐私。SQL注入是输入绕过验证,执行数据库操作,比如登录时输入' or 1=1 --,绕过验证。防御用参数化查询,比如Python的SQLAlchemy,将参数分离,避免拼接。360安全卫士检测数据库连接中的注入尝试,防止数据泄露。CSRF是伪造用户请求,比如用户登录后,攻击者发送伪造的转账链接,用户点击后转账。防御用CSRF令牌,服务器验证令牌有效性。360浏览器在用户操作时检查请求来源,防止恶意请求。SSRF是利用服务器解析本地资源,比如输入http://localhost:8080获取本地文件,防御用白名单过滤,只允许访问合法域名。360安全卫士拦截这类请求,防止信息泄露。文件上传漏洞是上传恶意文件,比如上传.php文件,执行代码。防御用白名单和文件内容检查,360浏览器检查上传文件类型,防止执行恶意脚本。这些攻击会影响用户体验,比如XSS导致页面异常或数据泄露,SQL注入导致财产损失,CSRF导致财产损失,SSRF导致信息泄露,文件上传导致系统被控制。360产品通过技术手段(如沙箱、白名单、输入验证)保障用户安全。”

6) 【追问清单】

  • 问:参数化查询和预编译语句的具体实现区别?
    回答要点:参数化查询将SQL语句和参数分离,参数作为参数传递,数据库解析时再拼接,避免注入;预编译语句是编译SQL后,只替换参数,减少解析次数,提高性能。
  • 问:360浏览器中如何具体实现XSS拦截?
    回答要点:通过内容安全策略(CSP)限制资源加载(如script-src 'self'),输入验证过滤脚本标签,沙箱技术隔离恶意脚本,用户举报机制快速响应。
  • 问:CSRF令牌的生成和验证过程?
    回答要点:服务器生成随机令牌,存储在用户会话或Cookie中,请求时携带令牌,服务器验证令牌有效性,防止伪造请求。
  • 问:SSRF的防御难点?
    回答要点:需要区分合法的本地请求(如图片验证码)和非法的恶意请求,通过白名单、IP过滤、请求头检查等技术,但仍有绕过风险(如通过代理绕过)。
  • 问:不同攻击的优先级如何判断?
    回答要点:根据攻击的常见程度、影响范围和易利用性,XSS和SQL注入属于高优先级(常见且影响大);CSRF次之;SSRF和文件上传根据业务场景判断(如图片验证码场景下SSRF可能被允许,但恶意场景需拦截)。

7) 【常见坑/雷区】

  • 混淆攻击原理:比如将XSS和CSRF的原理混淆,错误认为CSRF涉及脚本注入。
  • 防御措施不具体:只说“输入验证”,未说明具体方法(如正则、白名单)或技术细节(如CSP配置、参数化查询代码)。
  • 示例错误:比如SQL注入的例子写错,导致逻辑错误(如' or 1=1 --绕过验证的原理正确,但需解释清楚)。
  • 忽略360产品场景:回答时没有结合浏览器或安全卫士的具体功能,显得脱离实际(如只说防御措施,不提360的具体技术实现)。
  • 防御措施过时:比如只说老式的输入过滤,未提现代的参数化查询、CSP等技术,显得知识陈旧。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1