最佳安全实践
更新时间:2024.11.271. 商户平台安全使用
对于商户平台的安全使用,我们从 申请入驻、收到开户邮件、登录商户平台、商户平台日常使用 四个方面来展开。
1.1.申请入驻
申请入驻微信支付不会收取任何费用,谨防上当受骗。
提交申请资料后,需注意申请资料的保管,防止泄露或丢失。
1.2.收到开户邮件
开户邮件内容中包含了账户、初始登录密码等敏感信息,需妥善保管,防止泄露。
1.3.登录商户平台
首次登录请修改登录密码,密码复杂度建议大于8位字符,并且同时含有大、小写、数字、特殊符号。
仔细检查域名是否为https://pay.weixin.qq.com 或 https://pay.wechatpay.cn,防止误登录钓鱼网站导致密码等信息的泄露。
1.4.商户平台日常使用
1.4.1. 登录权限保护
定期(至多6个月)修改登录密码。
保护好注册管理员的手机设备,因为资金等敏感操作需要验证这个短信验证码。
合理的划分操作员及其权限,实施最小化权限原则。
离职或工作调动后员工操作权限的清理和定期回收。
为每一个员工建立员工账号,而不是多个人混用同一个账户。
1.4.2. 浏览器选择
使用较新的主流浏览器并检查开启浏览器和系统的自动更新机制。
1.4.3. 功能使用
企业营销功能需要设置防刷级别、限领次数等安全功能,如果是调用API,建议设置访问IP白名单等。
2. 系统开发注意事项
对于需要自行或外包开发信息系统的商户来说,有一些安全的注意事项,我们从 需求、设计、编码、测试、部署&运维 五个方面来展开。
2.1. 需求
商户自建营销活动需设计防刷机制。
2.2. 设计
2.2.1. 数据采集
法律禁止企业记录和存储的数据(如磁道信息、信用卡CVV码等)不能收集。
客户端敏感数据必须先进行加密处理。
2.2.2. 数据传输
使用HTTPS确保网络传输安全性。
禁用SSL等不安全协议和算法,建议使用TLS1.2。
不要轻易的尝试设计和实现自己的加密传输算法,几乎都会存在问题。
2.2.3. 数据保存
敏感信息禁止出现在日志中,如确实需要,需进行脱敏处理。
缓存和DB中的敏感数据需进行加密或者虚化(Hash)。
密码等关键认证必须采用加盐Hash方式保存。
2.2.4. 数据访问
外部请求数据访问必须进行鉴权操作。
对于内部的数据访问要严加控制,降低用户信息泄露风险。
2.2.5. 审计日志
记录的操作日志要包括5W信息(Who、When、Why、How、What)。
2.2.6. 资金处理
建立对账机制,每天对系统收支数据与微信支付数据进行对账,避免资金出现问题。
DB或者KV需要设计数据防篡改机制。
2.3. 编码
2.3.1. 防止参数处理不当导致的常见漏洞
2.3.2. 防止逻辑处理不当导致的漏洞
支付成功回调通知必须验证微信支付签名,避免被恶意攻击。
在后台进行商户价格的判断逻辑,避免客户端篡改价格导致商户损失。
避免在App或者网站页面里面出现商户APIkey或API证书等信息,防止泄露。
2.3.3. App开发安全注意事项
IOS应用安全开发参考 Apple NextPrevious Security Development Checklists
andriod应用安全开发参考 Andriod Security Tips
2.4. 测试
对输入输出参数进行专项安全测试。
通过众测或自建、第三方的安全扫描机制对系统进行安全扫描并对问题进行修复。
2.5. 部署与运维
确保系统所使用商业和开源组件的版本是最新稳定版。
参考此份checklist进行安全配置 系统漏洞检测及修复。
考虑系统和数据服务容灾,至少有主备机制,建议多机房多地部署。
建议采用各大云系统,并且启用相关的云安全防控机制。
如有条件,建议自建或者购买一些安全监控服务或设备。
设定关键指标项,进行实时数据上报和监控。
有专门的人员来跟进安全事件的处置。
关注信息系统所使用框架及组件的安全信息情况。
按时打补丁,定期检查系统升级。
服务端口开启最小化原则。
服务器登录操作可审计。
内部管理运营系统必须认证登录做操作日志记录以供审计。
建立业务下线机制,不再使用的业务做下线操作减少被攻击面。