
1) 【一句话结论】Web常见安全漏洞(如SQL注入、XSS、CSRF等)可通过输入校验、沙箱隔离、反序列化防护等技术防御,360浏览器/安全卫士通过代码层面的参数过滤、类型转换与运行时的沙箱、内容安全策略(CSP)等实现多维度防护。
2) 【原理/概念讲解】以SQL注入为例,原理是攻击者将恶意SQL代码注入到应用程序的输入参数中,导致数据库执行非法查询(如获取所有用户数据)。类比:就像在超市收银台的输入框里输入“价格=0的物品”,导致系统误判所有商品价格为零。360防御:代码层面对输入参数进行正则校验、参数化查询(如使用PreparedStatement,避免拼接SQL字符串);运行时通过数据库访问控制,限制查询权限。
XSS(跨站脚本):攻击者将恶意脚本注入到网页中,当用户访问时执行,窃取用户Cookie或重定向。类比:在网页里插入一个“隐藏的病毒”,用户点击后病毒激活,窃取个人信息。360防御:代码层面对用户输入进行HTML实体编码(转义特殊字符,如<转成<);运行时通过内容安全策略(CSP),限制页面加载的脚本来源,阻止执行未经授权的脚本。
CSRF(跨站请求伪造):攻击者伪造用户请求,诱导用户浏览器发送非法操作(如转账)。类比:用户在银行网页上,攻击者发送一个“转账”链接,用户点击后,浏览器自动发送转账请求。360防御:代码层面添加CSRF令牌(在请求头或表单中包含唯一令牌),验证请求的来源和令牌有效性;运行时通过浏览器扩展拦截非法跨域请求,提示用户确认。
SSRF(服务器端请求伪造):攻击者利用Web服务器访问内部资源(如文件、数据库、内网服务)。类比:攻击者让服务器“偷偷”访问内部文件,获取敏感信息。360防御:代码层面对URL请求进行白名单校验,限制访问外部资源;运行时通过网络过滤,阻止对内网IP的请求。
点击劫持:攻击者通过透明iframe覆盖用户页面,诱导用户点击。类比:在用户正在浏览的网页上,覆盖一个透明的“假按钮”,用户误点击后执行恶意操作。360防御:代码层面添加点击事件监听,检测并阻止透明元素的点击;运行时通过浏览器扩展,提示用户注意页面上的异常透明元素。
3) 【对比与适用场景】
| 漏洞类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| SQL注入 | 恶意注入SQL语句,操控数据库 | 可获取/修改数据,权限提升 | 数据库驱动的Web应用(如登录、查询) | 需严格输入校验,避免动态SQL拼接 |
| XSS | 注入恶意脚本,执行在用户浏览器 | 窃取Cookie、重定向、执行任意操作 | 用户输入展示的页面(如评论、搜索结果) | 需对用户输入进行编码,限制脚本执行 |
| CSRF | 伪造用户请求,执行非法操作 | 依赖用户已登录状态 | 用户已认证的页面(如支付、修改密码) | 需添加CSRF令牌,验证请求来源 |
| SSRF | 利用服务器访问内部资源 | 可访问内网服务、文件 | 服务器端处理外部URL的接口 | 需限制URL访问范围,过滤内网IP |
| 点击劫持 | 透明iframe覆盖用户页面 | 诱导用户点击 | 交互式页面(如表单、按钮) | 需检测并阻止透明元素的点击事件 |
4) 【示例】
' or 1=1 --,查询语句变为SELECT * FROM users WHERE username='' or 1=1 --,结果为所有用户。<script>alert('XSS')</script>,页面显示时执行脚本,弹出警告框。/api/transfer?amount=1000),执行转账。http://127.0.0.1:3306,服务器访问内网MySQL数据库,获取数据。5) 【面试口播版答案】
“面试官您好,我列举5种Web常见安全漏洞及360的防御措施:
6) 【追问清单】
7) 【常见坑/雷区】