Web 安全防护从网络层、Web 服务层、应用代码层、数据层、运维管理、身份权限、安全监测多维度落地,覆盖 OWASP Top10 常见风险,下面整理可直接落地的措施。
一、网络与基础设施层
最小端口暴露 只对外开放业务必需端口,关闭无用端口;使用防火墙、安全组限制源 IP 访问,管理后台、数据库不直接对公网开放。
启用 HTTPS,禁用 HTTP
部署 TLS 证书,强制 301 跳转 HTTP→HTTPS;
配置强 TLS 套件,禁用 TLS1.0/1.1,开启 HSTS 防止降级攻击;
安全响应头:
Strict‑Transport‑Security、X‑Content‑Type‑Options: nosniff、X‑Frame‑Options:DENY、Content‑Security‑Policy(CSP),防御点击劫持、MIME 嗅探、XSS。
WAF Web 应用防火墙 前置 WAF(云 WAF/ModSecurity/Nginx‑WAF),拦截 SQL 注入、XSS、命令注入、恶意请求、扫描器攻击。
负载均衡 & 反向代理隔离 业务后端服务器不直接暴露公网,全部经过 Nginx / 网关,做请求过滤、限流、防 CC。
二、Web 服务器(Nginx/Apache)安全配置
关闭版本号泄露,不返回 Nginx/Apache、后端框架版本信息,避免攻击者利用版本漏洞。
禁止目录浏览,关闭 autoindex;限制文件访问路径,路径穿越防护。
文件上传目录禁止执行脚本,上传文件夹取消 php/java 脚本执行权限。
请求限制:限制单请求 body 大小、URI 长度,连接数限流,防大请求 DoS。
删除默认页面、示例文件、测试接口。
三、身份认证与权限控制
密码策略 强制复杂度密码,禁止弱密码;开启密码过期;禁止明文存储密码,使用 bcrypt、Argon2 做密码哈希,严禁 MD5/SHA1。
会话 Session 安全
Cookie 设置
HttpOnly、Secure、SameSite=Strict/Lax,防止 XSS 窃取 Cookie、CSRF 攻击;Session ID 足够随机,登录成功重置 sessionId;
设置合理会话超时;异地登录踢出旧会话。
CSRF 防护 关键操作接口使用 CSRF Token;配合 SameSite Cookie。
权限最小化原则 RBAC 权限模型;垂直权限(普通用户不能访问管理员接口)、水平权限(用户不能越权查看他人数据),每一次接口请求都校验权限,不能只靠前端控制。
多因素认证 MFA 后台管理系统开启二次验证码。
接口防暴力破解:登录接口增加验证码、登录失败次数锁定 IP / 账号。
四、代码层:防御 OWASP Top10 核心漏洞
1. SQL 注入
优先使用预编译 ORM、参数化查询,禁止字符串拼接 SQL;
避免动态拼接表名、字段名;必要时做白名单校验。
2. XSS 跨站脚本
输出到 HTML 页面做 HTML 转义;输出 JS 做 JS 转义;
使用 CSP 内容安全策略,禁止内联脚本、禁止 eval;
用户输入不直接渲染到页面。
3. 命令注入
严禁直接把用户输入传给系统命令;必须调用命令,严格白名单过滤参数,不要拼接 shell 字符串。
4. 文件上传漏洞
校验文件文件头、真实文件类型,不只看后缀名;
重命名上传文件名,存储路径随机,不使用用户原始文件名;
上传目录禁止脚本执行,存储不在 web 可访问路径;
限制文件大小。
5. SSRF 服务端请求伪造
后端发起 http 请求,禁止访问内网地址、回环地址;配置内网黑名单,限制协议只允许 http/https。
6. 不安全反序列化
不要反序列化不受信的用户输入;避免使用危险序列化类。
7. 信息泄露
生产环境关闭 debug 模式,关闭详细异常堆栈输出给前端;
错误页面不要泄露数据库路径、代码路径、接口详情。
8. API 接口安全
接口鉴权:JWT / Token;JWT 设置短过期时间,支持吊销;不要把敏感信息放在 JWT 载荷。
接口速率限制 (RateLimit),防爬虫、爆破、DoS。
敏感接口增加签名校验。
五、数据安全
传输加密:全部 HTTPS;数据库连接开启 TLS 加密。
存储加密:手机号、身份证等敏感数据加密存储,不要明文;
数据库账号最小权限,业务账号不允许 drop/alter 等高权限;禁止 root 账号执行业务。
备份加密,备份文件妥善保管。
六、运维与开发流程安全
依赖组件安全 定期扫描第三方库漏洞:OWASP dependency‑check、Maven/Gradle 依赖扫描;升级存在 CVE 漏洞的 jar/npm 包;不使用废弃组件。
系统补丁:服务器操作系统、中间件及时打安全补丁。
安全开发流程:
代码安全审计;代码扫描 SAST;上线前 DAST 动态扫描;
禁止硬编码密钥、密码,密钥放到配置中心、环境变量,不要提交到 git 仓库。
密钥管理:AK/SK、数据库密码不要写代码;使用密钥管理服务。
日志审计:记录登录、关键操作日志;日志不记录密码、明文敏感信息;日志留存。
七、安全监测与应急
定期漏洞扫描、渗透测试。
入侵检测 IDS,监控异常访问、爆破行为。
做好安全应急预案,漏洞出现时快速降级、修复。
定期安全演练。
八、常见错误(避坑)
❌只靠前端校验安全,后端不做校验
❌密码明文存储,简单哈希
❌关闭 WAF,认为 “内网就安全”
❌依赖浏览器安全,不配置安全响应头
❌上传文件只校验后缀
❌接口权限只在页面做控制,后端接口无权限校验
简单优先级落地清单(快速整改)
全站 HTTPS + 全套安全响应头
WAF 上线,拦截常见攻击
修复注入、XSS、越权、文件上传高危漏洞
Cookie 安全属性,会话加固,登录防爆破
密码哈希存储,最小权限
关闭 Debug,屏蔽版本泄露
依赖包漏洞扫描
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢