1. 设计
1.1 代码流-基于MVC的代码
1.1.1 后门参数,功能,文件的存在
检查是否有后门或有没有暴露的业务逻辑类?
是否有与业务逻辑相关的,但未使用的配置?
如果请求参数被用于确定业务逻辑的方法,是否有一个用户权限与该权限允许使用的方法或活动的恰当匹配?
1.1.2 安全检查部署
是否存在处理输入的信息前部署安全检查?
1.1.3 不安全的数据绑定机制
检查未暴露的实参是否出现在表格对象中与用户输入绑定。如果出现,检查它们是否设有默认值。
检查未暴露的实参是否出现在表格对象中与用户输入绑定。如果出现,检查它们在于表格绑定前是否初始化?
1.2身份认证和访问控制机制
1.2.1 不安全的身份认证和访问控制逻辑
身份认证和授权检查的部署是否正确?
在收到非法的请求时。程序运行是否停止或被终止?
安全检查是否被正常执行?是否有后门参数?
在web的根目录中是否对所需文件和文件夹使用了安全检查?
1.2.2 多余的配置
是否有Access-ALL这样的默认配置?
配置是否用于所有的文件和用户?
如有容器托管的身份认证,是否只有基于Web的身份认证方法?
如有容器托管的身份认证,是否对所有的资源使用了身份认证?
1.2.3 不安全的会话管理
设计是否安全地处理会话?
1.2.4 脆弱的密码处理
密码是否强制使用了密码复杂度检查?
密码是否以加密的形式被存储?
密码是否向用户泄露,或写入文件,日志或控制台?
1.3 数据访问机制
1.3.1 配置文件或代码中存在敏感数据
数据库凭证是否以加密的形式被存储?
1.3.2 存在或支持对不同不安全数据和他们相关的漏洞
设计是否支持弱数据存储。如:扁平文件。
1.4 集中验证和截获器
1.4.1 任何已有安全控制中的弱点
集中验证是否应用于所有的请求和所有的输入?
集中验证检查是否阻止了所有的特殊字符?
验证过程中是否有特殊请求被忽略?
设计中是否对被验证的参数或功能维护特定列表?
2. 架构
2.1 入口点
2.1.1 不安全的数据处理和验证
所有不可信的输入数据是否得到了验证?
2.2 外部一体化
2.2.1 不安全的数据传输
数据是否在加密通道中传输?应用程序是否使用HTTPClient进行外部连接?
设计是否包含组件或模块之间的会话共享?在会话两端会话是否被正确验证?
2.2.2 被提高的权限等级
设计是否对外部链接或命令使用了被提高的OS或系统权限?
3. 配置
3.1 使用外部API
3.1.1 在第三方API或功能中出现已知漏洞
在使用的API或技术中是否含有已知漏洞?
3.2 内置安全控制
3.2.1 常见安全控制
设计框架中是否提供内置安全控制?
在已有的内置控制中是否含有漏洞或弱点?
在设计中是否启用了所有安全设置?