应用服务器安全
权限管理
越权
未授权访问
水平越权
垂直越权
解决方案
服务端鉴权(根本)
通过session校验用户身份
降低风险的措施
设计用户ID、订单ID等标识为不可猜测的数据序列
后端使用加密算法对ID进行加密,前端操作的时候,直接提交该加密串
配置管理
安全配置错误
可能发生在一个应用程序堆栈的任何层面
解决方案
开发、测试和生产环境都应该进行相同配置
搭建最小化平台
检查和修复安全配置项
向客户端发送安全指令
异常管理
目的
安全的异常处理有助于阻止某些应用程序级拒绝服务攻击,还可用来防止对攻击者有用的宝贵系统级信息被返回给客户端
解决方案
不要向客户端泄露信息
记录详细的错误信息
捕捉异常
组件安全
使用含有已知漏洞的组件
解决方案
制定相应的计划,对整个软件生命周期进行监控、评审、升级或更改配置
移除不使用的依赖、不需要的功能、组件、文件和文档
持续的记录客户端和服务端以及他们的依赖库的版本信息
仅从官方渠道获取组件
监控那些不再维护或者不发布安全补丁的库和组件
审核及日志记录
敏感信息泄露
日志注入
不足的日志记录和监控
加密存储安全
防御:
客户端
不允许敏感信息存储在本地
服务端
日志中敏感信息禁止明文记录敏感信息,需采取屏蔽、加密处理
数据库不可明文存储用户密码
加密算法
不要自创加密方法
将未加密 数据存储在算法附近
使用正确的算法和密钥大小
确保加密密钥的安全