Web安全开发指南

制定安全计划

定义应用环境、API、安全、库

迎合用户需求与期望

BYOD问题和需不需要移动端,设计密码的方案

获取第三方帮助

数据仓库、文件共享、云存储,使用库、API、微服务

运用成功的编码实践

开发成功的界面

  • 提供受控的选择
    • 单选、复选框
  • 校验输入,客户端服务器端校验

构建可靠的代码

  • 可靠性和安全性
  • 考虑外部库、框架、微服务和API

包含库

  • CSS,JS

慎用API

使用微服务

创建有用及高效的测试策略

像黑客一样思考

创建API安全区域

  • 选择沙盒和虚拟环境
    沙盒可以快速恢复,虚拟环境可以隔离,不影响到其他开发人员。
  • API的测试
    • 正确输入-正确响应
    • 范围检查验证API的边界数据
    • 错误类型数据
    • 非法数据,脚本、标签、二进制数据
    • 删减数据
    • 增加额外数据
    • null
    • API超负荷
    • API得不到资源
  • 集成测试
    • 沙盒集成,虚拟化集成
    • mocking,Mocky
    • API虚拟化,崩溃时替代真实API,VirtServer、Ready API
    • API表现评价
      • 每秒平均请求数
      • 每秒皆收到的请求峰值
      • 端点的吞吐量分布
      • 用户或工作组的吞吐量分布
    • 构建沙盒
      • AirGap
      • Sandboxie
      • Spoon.net
    • 集成API整合

检查库和API的漏洞

  • 测试性能,可用性,可靠性,安全性,平台类型
  • 测试工具,WebInspect、AppScan、Burp Proxy、Paros
  • 针对语言测试

使用第三方测试

制定计划,执行测试,测试报告

实现维护周期

  • 明确定义升级周期
    • 单元测试,检查依赖、配置、安全性
  • 考虑更新选项
    • 更新内部库,第三方库,API,语言翻译
  • 考虑报告的需要
    • 考虑数据源,第三方,用户

查找安全资源

  • 跟踪当前安全威胁
  • 获取必需的培训