5 Program Security

- 1 min

安全

选择题

1. 什么是执行**签名者检查**的目的?
   A. 确保提供的帐户是您期望的帐户
   B. 确保帐户是否由预期的公钥拥有
   C. 验证帐户是否已签署交易
   D. 确保提供的任何数据符合程序所需的标准

2. 为什么在程序开发中重要像攻击者一样思考?
   A. 了解常见陷阱对于编写良好的程序至关重要
   B. 确保您的程序可以处理用户的意外行为
   C. 确保您的程序可以处理恶意行为者的攻击
   D. 确保您的程序可以处理所有可能的安全风险

3. 什么是**所有权检查**的目的?
   A. 用于验证帐户是否由程序拥有
   B. 用于验证帐户是否已签署交易
   C. 用于验证帐户是否是预期的帐户
   D. 用于验证用户提供的任何数据

4. 为什么在程序中进行**数据验证**是重要的?
   A. 确保提供的帐户是您期望的帐户
   B. 确保帐户是否由预期的公钥拥有
   C. 确保提供的任何数据符合程序所需的标准
   D. 验证帐户是否已签署交易

1. 什么是执行**签名者检查**的目的?
   A. 确保提供的帐户是您期望的帐户
   B. 确保帐户是否由预期的公钥拥有
   C. 验证帐户是否已签署交易
   D. 确保提供的任何数据符合程序所需的标准
Answer: C
Citation: "执行**签名者检查**以确保任何帐户修改都是由正确的一方或多方签名的"

2. 为什么在程序开发中重要像攻击者一样思考?
   A. 了解常见陷阱对于编写良好的程序至关重要
   B. 确保您的程序可以处理用户的意外行为
   C. 确保您的程序可以处理恶意行为者的攻击
   D. 确保您的程序可以处理所有可能的安全风险
Answer: B
Citation: "正确的思维方式需要从问题 '这是坏的吗?' 转变为 '我怎么破坏这个?'"

3. 什么是**所有权检查**的目的?
   A. 用于验证帐户是否由程序拥有
   B. 用于验证帐户是否已签署交易
   C. 用于验证帐户是否是预期的帐户
   D. 用于验证用户提供的任何数据
Answer: A
Citation: "所有权检查验证帐户是否由预期的公钥拥有"

4. 为什么在程序中进行**数据验证**是重要的?
   A. 确保提供的帐户是您期望的帐户
   B. 确保帐户是否由预期的公钥拥有
   C. 确保提供的任何数据符合程序所需的标准
   D. 验证帐户是否已签署交易
Answer: C
Citation: "数据验证包括确保提供的任何数据符合程序所需的标准"

问答题

  1. 什么是“像攻击者一样思考”在程序开发中的重要性?

答:在程序开发中,“像攻击者一样思考”意味着提出问题:“我怎么破坏这个?”这有助于发现可能存在的漏洞和安全风险,从而加强程序的安全性。

  1. 在程序开发中,什么是所有者检查和签名者检查?

答:所有者检查用于验证帐户是否由程序拥有,而签名者检查用于确保任何帐户修改都是由正确的一方或多方签名的。

  1. 什么是帐户验证和数据验证在程序开发中的作用?

答:帐户验证包括确保提供的帐户是预期的帐户,数据验证包括确保提供的任何数据符合程序所需的标准,以增强程序的安全性。

  1. 如何避免整数溢出和下溢在程序开发中?

答:可以通过设置逻辑确保溢出或下溢不会发生,或者使用checked_add等检查数学操作来避免整数溢出和下溢。

  1. 为什么在程序开发中重要进行错误处理?

答:错误处理在程序开发中非常重要,因为它可以帮助程序优雅地处理问题,并提供更多上下文和细节,从而提高程序的可靠性和安全性。