你的位置:首页 > 行业资讯 > 新闻详情

无Bug的安全代码

文章作者:佚名 时间:2018年07月03日

防御性编程初窥

抵御那些不可能的事,因为看似不可能的事也会发生。

防御性编程中有很多防御方式,这也取决于软件项目所需的「安全」级别和资源级别。

防御性编程是防御式设计的一种形式,用来确保软件在未知的环境中能继续运行。防御性编程的实践往往用于需要高可用性、安全性、保密性的地方。

永远不要相信用户输入

设想总是获取到不想要的东西。异常情况的出现,要时刻防备用户输入以及通常会传入系统的东西,这是成为一个防御性程序员的方法

设置白名单而不是黑名单。在 PHP 有无数的开源校验库可以让你的工作变简单。

进攻是最好的防守。

数据库抽象化

在 OWASP Top 10 Security Vulnerabilities 排首位的是注入攻击。这意味着有些人还没有使用安全的工具来查询数据库。使用数据库抽象包或库。在 PHP 里可以使用 PDO 来确保基本的注入攻击防范。

不要重复发明轮子

不用框架(或微框架)吗?这并不仅跟框架有关,也意味着可以方便地使用已经存在的、经过测试的、受万千开发者信任的、稳定的新特性,而不是只为了自己从中受益而制作的东西。自己创建方法的唯一原因是需要的东西不存在,或存在但不符合的需求(性能差、缺失特性等等)。

这就是所谓的智能代码重用。

不要相信开发者

防御性编程与防御性驾驶相关联。在防御性驾驶中,假设周围的每个人都可能犯错。所以要留意别人的行为。相同概念也适用于防御性编程,作为开发者不要相信其他开发者的代码。

在很多人参与的大型项目中,有许多方式编写并组织代码。这也导致混乱甚至更多的 bug。这也是需要加强规范代码风格和代码检查的原因。

编写符合 SOLID 原则的代码

这是(防御性)编程最困难的部分——编写不糟糕的代码。这也是很多人知道并一直在讨论的,但没有人真正关心或将注意力和精力放在实现符合 SOLID 原则的代码上。

编写测试

编写单元测试可以帮助秉承一般的原则,比如高内聚、单一职责、低耦合和正确的对象组合。它不仅帮助测试小的单元用例,也能测试你组织对象的方式。当测试小功能时,会清晰的看到需要测试多少情况和需要模拟多少对象,来达到 100% 的覆盖率。


----莱芜软件开发----

想要了解更多详情欢迎来电咨询18678812288,或登陆网址www.sdxinnongcun.com。联系人:王经理。

上一篇:Java编程语言特点

上一篇:内建安全的软件开发