系统开发注意事项

对于接入了微信支付的商户们来说,请仔细阅读和遵守该最佳安全实践,将极大的提升贵公司在使用微信支付时的安全性。我们也会持续关注商户安全性,将最新最好的实践更新于此。

对于需要自行或外包开发信息系统的商户来说,有一些安全的注意事项,我们从 需求、设计、编码、测试、部署&运维 五个方面来展开。

 

1、

需求

a、商户自建营销活动需设计防刷机制。

2、

设计

a、数据采集

  1. ◆ 法律禁止企业记录和存储的数据(如磁道信息、信用卡CVV码等)不能收集。
  2. ◆ 客户端敏感数据必须先进行加密处理。

b、数据传输

  1. ◆ 使用HTTPS确保网络传输安全性。
  2. ◆ 禁用SSL等不安全协议和算法,建议使用TLS1.2。
  3. ◆ 不要轻易的尝试设计和实现自己的加密传输算法,几乎都会存在问题。

c、数据保存

  1. ◆ 敏感信息禁止出现在日志中,如确实需要,需进行脱敏处理。
  2. ◆ 缓存和DB中的敏感数据需进行加密或者虚化(Hash)。
  3. ◆ 密码等关键认证必须采用加盐Hash方式保存。

d、数据访问

  1. ◆ 外部请求数据访问必须进行鉴权操作。
  2. ◆ 对于内部的数据访问要严加控制,降低用户信息泄漏风险。

e、审计日志

  1. ◆ 记录的操作日志要包括5W信息(Who、When、Why、How、What)。

f、资金处理

  1. ◆ 建立对账机制,每天对系统收支数据与微信支付数据进行对账,避免资金出现问题。
  2. ◆ DB或者KV需要设计数据防篡改机制。

3、

编码

a、防止参数处理不当导致的常见漏洞

b、防止逻辑处理不当导致的漏洞

  1. ◆ 支付成功回调通知必须验证微信支付签名,避免被恶意攻击。
  2. ◆ 在后台进行商户价格的判断逻辑,避免客户端篡改价格导致商户损失。
  3. ◆ 避免在App或者网站页面里面出现商户APIkey或API证书等信息,防止泄漏。

c、APP开发安全注意事项

  1. ◆ IOS应用安全开发参考 Apple NextPrevious Security Development Checklists
  2. ◆ andriod应用安全开发参考 Andriod Security Tips

4、

测试

a、对输入输出参数进行专项安全测试。

b、通过众测或自建、第三方的安全扫描机制对系统进行安全扫描并对问题进行修复。

5、

部署&运维

a、确保系统所使用商业和开源组件的版本是最新稳定版。

b、参考此份checklist进行安全配置 系统漏洞检测及修复

c、考虑系统和数据服务容灾,至少有主备机制,建议多机房多地部署。

d、建议采用各大云系统,并且启用相关的云安全防控机制。

e、如有条件,建议自建或者购买一些安全监控服务或设备。

f、设定关键指标项,进行实时数据上报和监控

g、有专门的人员来跟进安全事件的处置。

h、关注信息系统所使用框架及组件的安全信息情况。

i、按时打补丁,定期检查系统升级。

j、服务端口开启最小化原则。

k、服务器登录操作可审计。

m、内部管理运营系统必须认证登录做操作日志记录以供审计。

n、建立业务下线机制,不再使用的业务做下线操作减少被攻击面。