2019独角兽企业重金招聘Python工程师标准>>>
参考了别人的一篇文章整理如下 没有办法,太大显示的不全.整是奇怪吖,有需要的原文件的自己找我要吧.我不会上传文件.没找到地方传:
类别 | 产生原因 | 触发点 | 漏洞表现 | 解决方式 |
输入和数据验证 | 如何知道应用程序接收的输入 是有效且安全的呢? 输入验证 是指应用程序在进行 其他处理之前如何筛选、 删除或拒绝输入。 | • 在超文本标记语言 (HTML) 输出流中使用未经验证的输入 • 使用用于生成 SQL 查询的未经验证的输入 依赖于客户端验证 • 使用输入文件名、URL 或用户名进行安全决策 • 对于恶意输入,只使用应用程序筛选器 • 查找输入的已知无效模式 | • 缓冲区溢出 • 跨站点脚本 • SQL 注入 • 标准化攻击 | • 不要信任输入。 • 验证输入:长度、范围、格式和类型。 • 限制、拒绝和净化输入。 • 对输出进行编码。 |
身份验证 | 是谁? 身份验证是一个实体验证 另一个实体身份的过程, 通常通过凭据进行, 例如用户名和密码。 | • 使用较弱的密码 • 在配置文件中存储明文凭据 • 通过网络传递明文凭据 • 允许越权帐户 • 允许延长的会话周期 • 将个人设置与身份验证混合 | • 网络窃听 • 强力攻击 • 字典攻击 • Cookie 重播攻击 • 盗窃凭据 | • 使用强密码策略。 • 不要存储凭据。 • 使用不需要通过网络传递明文凭据的身份验证机制。 • 对通信信道进行加密以保护身份验证令牌。 • HTTPS 只与窗体身份验证 cookie 一起使用。 • 将匿名验证从已验证的页面中分离出来。 |
授权 | 可以做什么? 授权是应用程序提供 对资源和操作的访问控制的方式。 | • 依赖单一网关 • 无法根据应用程序标识锁定系统资源 • 无法限制对指定存储过程的数据库访问 • 使用不合适的权限分离 | • 提升特权 • 泄漏机密数据 • 篡改数据 • 引诱攻击 | • 使用具有最少权限的帐户。 • 考虑访问细分粒度。 • 实行权限分离。 • 使用多个网关。 • 根据系统标识保护系统资源。 |
配置管理 | 应用程序以谁的身份运行? 它连接到哪个数据库? 如何管理您的应用程序? 如何保护这些设置? 配置管理指的是应用程序如何处理这些操作问题。 | • 使用不安全的管理界面 • 使用不安全的配置存储 • 存储明文配置数据 • 拥有太多管理员 • 使用越权进程帐户和服务帐户 | • 未经授权访问管理界面 • 未经授权访问配置存储 • 检索明文配置机密信息 • 缺乏个人问责制 • 越权的进程和服务帐户 | • 使用具有最少权限的服务帐户。 • 不要以明文形式存储凭据。 • 在管理界面上使用强身份验证和授权。 • 不要使用本地安全机构 (LSA)。 • 避免在 Web 空间中存储敏感信息。 • 只使用本地管理。 |
敏感数据 | 应用程序如何处理敏感数据? 敏感数据是指您的应用程序 如何处理必须受到保护的所有数据, 不管数据是在内存中、 网络上还是永久性存储中。 | • 在不需要时存储机密信息 • 在代码中存储机密信息 • 以明文形式存储机密信息 • 在网络上以明文形式传递敏感数据 | • 访问存储中的敏感数据 • 访问内存中的敏感数据(包括进程转储) • 网络侦听 • 信息泄漏 | • 不要在软件中存储机密信息。 • 加密通过网络传递的敏感数据。 • 保护信道 |
会话管理 | 应用程序如何处理和保护用户会话? 会话是指用户与Web应用程序之间的一系列相关交互。 | • 通过未加密的信道传递会话标识符 • 允许延长的会话周期 • 拥有不安全的会话状态存储 • 在查询字符串中放置会话标识符 | • 会话攻击 • 会话重播 • 中间人攻击 | • 按照匿名用户、已标识用户和经过身份验证的 用户划分站点。 • 减少会话超时。 • 避免在会话存储中存储敏感数据。 • 保护通往会话存储的信道。 • 验证和授权对会话存储的访问。 |
加密 | 如何保持机密(保密性)? 如何防止他人篡改数据或库(完整性)? 如何为必须具有很强机密性的 随机值提供种子? 加密是指应用程序保证机密性和 完整性的方式。 | • 使用自定义加密 • 使用的算法不正确,或者密钥长度太短 • 无法保护加密密钥 • 在延长的时间内使用同一密钥 • 以不安全的方式分配密钥 | • 丢失解密密钥 • 加密破解 | • 不要开发和使用专用算法 (XOR 不是加密。使用平台提供的加密算法)。 • 使用 RNGCryptoServiceProvider 方法 生成随机数字。 • 避免密钥管理。 在适当的地方使用 Windows 数据保护 API (DPAPI)。 • 定期更改您的密钥。 |
参数操作 | 应用程序如何操作参数值? 对于应用程序,表单域、 查询字符串参数和 cookie 值经常 作为参数使用。 参数操作既指应用程序保护这些值 不被篡改的方式, 也指应用程序处理输入参数的方式。 | • 无法验证所有输入参数 • 在未加密的 cookie 中存储敏感数据 • 在查询字符串和表单域中存储敏感数据 • 信任 HTTP 标头信息 • 使用无保护的视图状态 | • 查询字符串操作 • 表单域操作 • Cookie 操作 • HTTP 标头操作 | • 不要信任客户端可以操作的字段。 这些字段包括查询字符串、表单域、 cookie 值以及 HTTP 标头。 |
异常管理 | 当应用程序中的一个方法调用失败时, 应用程序会做什么? 显示了多少? 是否将错误信息友好地返回给最终用户? 是否将有价值的异常信息传递给调用方? 应用程序的失败方式是否友好? | • 无法使用结构化异常处理 • 显示太多的信息给客户端 | • 显示敏感系统或应用程序细节 • 拒绝服务攻击 | • 使用结构化异常处理(通过使用 try/catch 块)。 • 只有在操作添加值/信息时才捕获和包装异常。 • 不要显示敏感系统或应用程序信息。 • 不要记录私人数据,例如密码。 |
审核与记录 | 谁在什么时候做了什么? 审核与记录是指应用程序记录与安全相关的事件的方式 | • 无法审核失败的登录 • 无法保护审核文件 • 无法跨应用程序层进行审核 | • 用户拒绝执行某项操作 • 攻击者利用了某个应用程序而没有留下踪迹 • 攻击者可以掩盖他的踪迹 | • 识别恶意行为。 • 了解您的基线(了解什么是良好的业务流)。 • 使用应用程序规范公开可以监视的行为。 |
显示不全,杯具.放个图吧.