Web安全入门:读懂Web世界里的攻防

Web安全入门:读懂Web世界里的攻防

一、什么是Web安全

Web安全,全称Web应用安全,属于网络安全的一个分支,专门研究网站、Web系统、小程序后台、API接口这类基于HTTP/HTTPS的应用所面临的安全风险、防护方案与攻防思路。

我们日常浏览网页、登录账号、网上购物、提交表单、使用后台管理系统,全部都在和Web应用打交道。Web应用运行在服务端,接收浏览器、客户端发来的请求,处理数据并返回页面。一旦代码设计缺陷、配置不当,攻击者就可以利用漏洞窃取数据、篡改页面、接管服务器。Web安全的目标,就是保障Web应用的保密性、完整性、可用性。

  • 保密性:敏感数据(账号密码、手机号、用户资料)不被未授权人员读取;

  • 完整性:页面内容、业务数据不能被恶意篡改;

  • 可用性:网站服务不会被攻击导致瘫痪,正常用户可以访问。

二、Web安全为什么很重要

Web应用是互联网对外暴露最直接的入口。相比于内网系统,网站、API需要对外开放端口,任何人都可以发起访问,天然更容易成为攻击目标。

常见危害:

  1. 用户信息泄露:数据库被拖库,手机号、身份证、密码大量流出;

  2. 网页篡改:网站首页被挂上黑页、虚假广告,损害企业公信力;

  3. 账户劫持:攻击者盗取管理员或普通用户账号,登录后台操作;

  4. 业务损失:恶意下单、刷券、越权查看他人订单,造成经济损失;

  5. 服务器沦陷:通过Web漏洞拿到服务器权限,把服务器当作肉鸡,发起更多攻击。

随着《网络安全法》《数据安全法》《个人信息保护法》落地,企业如果因安全漏洞造成用户数据泄露,不仅要承担民事赔偿,严重情况下负责人还会承担法律责任。

三、Web常见漏洞简介(OWASP Top10核心)

OWASP(开放式Web应用安全项目)是Web安全领域权威组织,定期总结Web应用最危险的十大漏洞,也是安全从业者入门必学内容。

  1. **注入漏洞(Injection)**最经典的是SQL注入。程序直接把前端输入拼接到SQL语句中执行,攻击者输入特殊字符,改变SQL原有逻辑,读取、修改数据库。除此之外还有命令注入、XPath注入等。

    例:搜索框输入特殊语句,直接查询全部用户密码。

  2. **跨站脚本 XSS(Cross-Site Scripting)**网站没有过滤用户输入的脚本代码,恶意JS代码存入页面。其他用户访问页面时,脚本在受害者浏览器执行,可窃取Cookie、劫持会话、钓鱼弹窗。分为存储型、反射型、DOM型XSS。

  3. 失效的身份认证登录机制设计缺陷。比如会话Cookie长期不失效、密码强度无限制、可暴力破解、会话ID可预测。攻击者可以直接冒充用户登录。

  4. **失效的访问控制(越权)**权限校验只在前端做判断,后端没有校验。分为水平越权(看同级别其他人数据,比如查看别人订单)、垂直越权(普通用户直接访问管理员接口)。

  5. 安全配置错误服务器、中间件、框架默认配置不安全。例如开启不必要的调试页面、默认账号密码、目录遍历,泄露源码和配置文件。

  6. 敏感数据暴露明文存储密码、HTTP明文传输数据、密钥硬编码在代码里。传输或存储时敏感数据未加密,一旦被截获直接可读。

  7. 跨站请求伪造 CSRF利用用户已登录的Cookie,诱导用户访问恶意页面,在不知情的情况下,以用户身份发起请求,比如修改密码、提交操作。

  8. 不安全的反序列化程序反序列化不可信外部数据,攻击者构造恶意序列化对象,执行任意代码,多见于Java、PHP等语言。

  9. 使用含有已知漏洞的组件项目引入的第三方框架、SDK、插件存在公开漏洞,但开发者没有升级版本,攻击者可以利用组件漏洞攻击。比如老旧Spring、Struts2漏洞。

  10. 服务器端请求伪造 SSRFWeb服务可以主动请求外部地址,攻击者利用这个能力,让服务端去访问内网地址,探测内网资产、读取内网资源。

除此之外还有文件上传漏洞(上传木马文件执行)、目录遍历、逻辑漏洞(业务逻辑缺陷,如无限重试、低价下单)等高频漏洞。业务逻辑漏洞往往比传统漏洞更容易被忽视,也更容易造成直接经济损失。

四、Web攻击的基本思路

Web攻击一般流程:

  1. 信息收集:扫描域名、IP、中间件版本、目录、接口,获取网站技术栈;

  2. 漏洞探测:使用工具+手工测试,寻找输入点、参数,尝试Payload测试是否存在漏洞;

  3. 漏洞利用:构造攻击语句,验证漏洞能否读取数据、执行代码;

  4. 权限提升:拿到低权限后,寻找本地漏洞提升权限;

  5. 维持访问:留下后门,方便后续再次进入;

  6. 痕迹清理:清除日志。

注意:未经授权对任何网站进行扫描、渗透测试属于违法行为,学习Web安全必须在自己搭建的靶场环境练习,如DVWA、WebGoat、Pikachu等。

五、Web安全防护思路

安全不是单一的防火墙,而是多层防护体系(纵深防御)。

  1. 代码层面

    • 防注入:使用预编译语句、参数化查询,拒绝直接拼接SQL;

    • 输入输出过滤:对所有用户输入做校验、转义,过滤特殊字符;

    • 最小权限原则:数据库账号、服务器账号只分配必要权限;

    • 避免在代码硬编码密钥、密码。

  2. 身份与权限

    • 后端必须做权限校验,不能只依靠前端隐藏按钮;

    • 密码加盐哈希存储(bcrypt、Argon2),禁止明文;

    • 会话超时,关键操作增加验证码、二次验证。

  3. 传输与部署

    • 全站启用HTTPS,加密传输;

    • 关闭不必要的服务、端口,删除默认页面;

    • 及时升级框架、中间件,定期做依赖漏洞扫描。

  4. 安全运营

    • 上线前代码审计、安全测试;

    • WAF(Web应用防火墙)部署,拦截常见攻击Payload;

    • 日志审计,监控异常访问行为;

    • 定期漏洞扫描与渗透测试。

六、Web安全学习方向

Web安全入门一般路线:

  1. 基础:HTTP/HTTPS协议、HTML、JS、SQL基础;

  2. 漏洞原理:逐个学习OWASP Top10,本地靶场复现;

  3. 工具:Burp Suite、Nmap、SQLMap等工具使用;

  4. 进阶:代码审计、内网渗透、API安全、云原生Web安全;

  5. 合规:等保、数据安全相关规范。

Web安全攻防是持续博弈的过程。没有绝对安全的系统,安全工作的核心是不断发现风险,降低被攻击的概率,减少被入侵后的损失。

结尾

Web应用是互联网业务的载体,业务快速迭代的同时,安全很容易被忽略。Web安全不只是安全工程师的工作,开发、测试、运维都需要具备基础安全意识。安全左移,把安全思考融入需求、编码、测试阶段,才能从根源减少漏洞。

相关推荐
天若有情6731 小时前
从零搭建校园二手交易系统:Vue2 + SpringBoot 4.x 全栈实战
java·spring boot·后端
Novproxy_Z1 小时前
账号批量封禁复盘:从日志定位是 IP 关联还是行为指纹关联
网络·数据库·tcp/ip
一条泥憨鱼1 小时前
【从0开始学习计算机网络】| 从一次 ping 出发:ICMP、路由协议与网关边界
服务器·网络·ip
看着博客敲代码1 小时前
enum4linux 报 Server doesn‘t allow session 与 SMB 主机信息枚举
linux·安全·网络安全
Amos_Web1 小时前
Rspack 源码解析(二十四):AssetPlugin 如何让图片同时是「URL 字符串」和「真实文件」
前端·rust·前端框架
honsor1 小时前
以太网温湿度传感器原理与 Modbus TCP 组网实战,机房动环监控落地
网络·嵌入式硬件·物联网·网络协议·tcp/ip
深圳市恒星物联科技有限公司1 小时前
如何用有限预算实现排水管网核心风险点全覆盖?
大数据·网络·智慧城市
lexiangqicheng1 小时前
1,自定义表单通俗理解-PC设计APP渲染
java·前端·javascript
其实防守也摸鱼1 小时前
Codex 下载与本地部署实战指南
linux·服务器·前端·数据库·算法·ai