适用项目:线上商品的销售与运营平台
复习状态:未复习
安全架构是从系统整体角度规划安全防护能力的软件架构设计内容,主要通过网络边界防护、数据保护、身份认证、权限控制、审计追踪和容灾恢复等手段,降低系统遭受攻击、数据泄露和越权操作的风险。线上商品的销售与运营平台涉及用户账号、订单信息、收货地址、支付流水、优惠券、会员积分和经营报表等敏感数据,同时还要面向买家、商家、运营人员和外部支付平台开放访问。如果安全架构设计不足,就可能出现恶意请求冲击、用户信息泄露、商家越权修改商品、运营后台被非法访问等问题。因此,在本项目中,我从网络边界、数据保护和应用权限三个方面设计安全架构,保障平台在高并发交易和多角色运营场景下安全稳定运行。
首先,我在网络边界层采用防火墙和入侵检测实现外部访问防护。网络边界防护的主要作用是划分安全区域,限制不可信访问,阻断异常流量进入核心业务系统。在本项目中,我将平台网络划分为公网访问区、应用服务区和数据库内网区,用户请求只能先进入 Nginx 和 API 网关所在的公网访问区,再由网关转发到订单、商品、库存、营销等后端服务;数据库、Redis 和消息队列均部署在内网区,不允许公网直接访问。同时,我在网关前配置防火墙规则,只开放 HTTPS、支付回调等必要端口,并对异常 IP、频繁失败登录、短时间高频下单请求进行拦截。对于秒杀活动期间的突发流量,我结合网关限流和入侵检测日志进行联动分析。上线后,平台公网暴露端口由 18 个减少到 4 个,异常扫描和恶意登录请求拦截率达到 96% 以上,核心数据库未再出现外部直接访问风险。
其次,我在数据层采用加密和容灾备份保护敏感数据。数据安全的重点是保证敏感信息在存储、传输和故障恢复过程中不被泄露、不被篡改并可及时恢复。在本项目中,我对用户手机号、收货地址、支付流水号等敏感字段进行了脱敏展示和加密存储,后端服务访问数据库时统一通过数据访问组件处理加解密,避免开发人员在业务代码中分散处理。同时,用户登录、支付回调和后台操作均通过 HTTPS 传输,防止数据在网络传输过程中被窃听。考虑到订单和支付数据的重要性,我还对 MySQL 主库和从库设置定时备份策略,每天进行全量备份,每 30 分钟进行增量备份,并将备份文件保存到独立存储区域。通过上述措施,测试环境中 160 条敏感数据检查项全部通过,数据库误操作恢复时间控制在 20 分钟以内,订单和支付流水数据的可恢复性得到保障。
最后,我在应用层采用基于角色的访问控制保证多角色权限隔离。访问控制的主要作用是根据用户身份和业务角色限制其能够访问的菜单、接口和数据范围,防止越权操作。线上商品销售平台中,普通买家只能管理自己的订单、地址和优惠券,商家只能维护本店商品和订单,运营人员只能在授权范围内配置活动、查看报表和处理审核。在本项目中,我设计了买家、商家运营、平台运营、财务人员和系统管理员等角色,并在 API 网关和业务服务中进行双重权限校验。例如,普通用户即使修改请求中的订单号,也不能查看他人订单;商家账号调用商品上下架接口时,系统会校验商品是否属于该商家店铺;财务人员只能查看支付流水和退款记录,不能修改促销规则。通过 210 条权限测试用例,我们发现并修复了 11 个越权访问问题。整改后,越权访问均被拦截并记录审计日志,后台敏感操作可追溯率达到 100%,平台多角色运营安全性明显提升。