首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防御性编程

防御性编程
EN

Stack Overflow用户
提问于 2008-08-09 17:02:57
回答 14查看 2.6K关注 0票数 11

在编写代码时,您是否有意识地进行防御性编程,以确保高程序质量并避免代码被恶意利用的可能性,例如,通过缓冲区溢出利用或代码注入?

你总是应用于你的代码的“最低”质量水平是什么?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2008-08-09 18:00:27

在我的工作中,我们的代码必须是最高质量的。

因此,我们主要关注两件事:

  1. Testing
  2. Code评论

把钱带回家。

票数 12
EN

Stack Overflow用户

发布于 2008-08-09 18:05:09

与abyx类似,在我所在的团队中,开发人员总是使用单元测试和代码审查。除此之外,我的目标也是确保我不包含人们可能使用的代码-我倾向于只为手头的对象所需的基本方法集编写代码,以使其按照规范的方式运行。我发现,合并可能永远不会使用的方法,但提供功能可能会无意中将“后门”或意外/意外使用引入系统。

与预测可能永远不会发生的事情相比,稍后返回并引入方法、属性和属性要容易得多。

票数 4
EN

Stack Overflow用户

发布于 2008-08-10 09:26:46

我建议对进入“组件”或框架的数据采取防御性措施。在“组件”或框架中,人们应该认为数据是“正确的”。

是这样想的。调用者需要提供正确的参数,否则所有函数和方法都必须检查每个传入的参数。但是,如果只对调用者执行检查,则只需要检查一次。因此,参数应该是“正确的”,因此可以传递到更低的级别。

  1. 始终检查来自外部源、用户等的数据。
  2. “组件”或框架应始终检查传入调用。

如果存在错误,并且在调用中使用了错误的值。什么才是真正正确的做法呢?其中一个只表明程序正在处理的“数据”是错误的,一些人喜欢断言,但另一些人则希望使用高级错误报告和可能的错误恢复。在任何情况下,数据都会被发现是错误的,在少数情况下,继续处理它是很好的。(请注意,如果服务器至少不会死掉,那就好了)

从卫星发送的图像可能是尝试从互联网下载的高级错误恢复on...an图像的案例,以放置错误图标用于...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档