上传文件应该检查文件的大小,一般在系统中可以预设一个指定值(如10M),超过此预设值可以提示用户上传文件太大,这样可以防止恶意用户上传若干个大文件(如2G)而引起系统拒绝服务。
48:生产环境中,所有使用的操作系统,数据库以及应用服务器都要进行加固。
使用哈希,推荐使用 SHA256 或更高级算法,而不是使用 MD5。
使用哈希算法时,推荐加盐。
授权验证失败最好记录到日志中去,便于以后进行分析。
授予最低权限,以限制用户只能访问为完成任务所需要的功能、数据和系统信息
输出编码是防止 XSS 跨站攻击的一种有效的方式。
数据流图可用于执行威胁模型的威胁分析。
数字签名既可以保证数据的完整性,又可以保证数据的不可抵赖性。
通常而言,“SQL 注入”是用户输入的内容被当作 SQL 语句执行而引发的威胁。
威胁分析对后续的安全设计、安全开发、安全测试和安全部署具有指导下意义。
为了保证传输安全,我们不要使用 SSL1.0、SSL2.0、SSL3.0、TLS1.0 等协议,而是 推荐使用 TLS1.2。
系统设置权限的时候应该遵循最小特权原则。
系统应该使用安全的随机算法,如使用 java.security.SecureRandom 类而不是 java.util.Random 类。
防止 CSRF 跨站请求伪造攻击?a) 增加一个 form 隐藏字段表示随机令牌 b) 在 Ajax 请求头中增加一个随机令牌 c) 对重要的操作进行二次身份验证,让用户重新输入密码
权限控制正确的实现方式? a) 永远在服务器端进行服务控制,而不是客户端。 b) 权限检测应该应用到所有的层。c) 基于角色的访问(RBAC。
防止不安全的直接对象引用? a) 尽量不要暴露内部的直接对象应用 b) 使用难以预测的 Key,如 GUID c) 使用哈希令牌增加完整性校验
防止 XSS 跨站脚本攻击:执行输入验证、输出验证和内容安全策略(CSP)
cookie 中的哪个属性可以保证 cookie 的值在网络中安全传输? Secure
哪些信息应该被记录在日志中? a) 增加或删除的用户账号。 b) 登录和登出的成功或失败记录。 c) 失败的数据库连接尝试记录。
哪一种方式能比较小的影响系统功能的前提下比较好的防止暴力破解?登录失败一定的次数(如3次),提示用户输入 CAPTCHA。
哪种方式可以保护会话? a)Login 成功以后,马上使会话失效。 b)Logout 成功以后,马上使会话失效。 c) 有需要验证的地方,必须有 Logout。
下面那种方式适合做为“SQL 注入”的防范措施? a) 参数化查询。 b) 存储过程。 c) 输入转义。
成功的 SQL 注入会引起哪些后果? a) 从数据库中读取敏感数据。 b) 修改数据库中的数据。 c) 执行数据库中的一些 administration 操作。
哪些文档可作为软件开发团队的软件安全开发参考? a)《OWASPSecureCodingPractice》 b) 《OWASPCheatSheet》 c) 《安全编码规范检查列表》
在 S-SDLC 流程中,设计审核的内容包括: a) 输入验证、授权和身份认证。 b) 配置管理、会话管理和例外管理。 c) 敏感数据、加密、日志和审计。
在软件安全开发流程(S-SDLC)中的发布和响应阶段,我们需要进行安全加固、补丁管理、漏洞管理以及安全事件响应。
在软件安全开发流程(S-SDLC)中的设计阶段,我们需要进行威胁分析以及攻击面分析。
在软件安全开发流程(S-SDLC)中的验证阶段,我们需要进行动态工具扫描以及渗透测试。
在软件安全开发流程的风险评估时,我们需要考虑哪些因素? a) 应用程序是否处理个人信息? b) 应用程序是否处理商业敏感数据? c) 应用程序是否为提供某项服务起到关键作用。
在应用程序连接数据库的时候,不推荐使用 admin 账户,而是创建一个新用户,并给它最少而必要的权限。