- 2019-11-05
- 成功的软件开发组织有很多成功的因素
- 2019-10-31
- 莱芜智慧环卫把决策建立在有效的数据分析基础之上
- 2019-10-31
- 依托核心数据,泰安智慧国土全面实施
- 2019-10-21
- 脱颖而出泰安软件开发企业竟如此优秀
- 2019-10-21
- 莱芜软件开发公司只有用心才能摸索到自己的开发之
无Bug的安全代码
文章作者:佚名 时间:2018年07月03日
防御性编程初窥
抵御那些不可能的事,因为看似不可能的事也会发生。
防御性编程中有很多防御方式,这也取决于软件项目所需的「安全」级别和资源级别。
防御性编程是防御式设计的一种形式,用来确保软件在未知的环境中能继续运行。防御性编程的实践往往用于需要高可用性、安全性、保密性的地方。
永远不要相信用户输入
设想总是获取到不想要的东西。异常情况的出现,要时刻防备用户输入以及通常会传入系统的东西,这是成为一个防御性程序员的方法
设置白名单而不是黑名单。在 PHP 有无数的开源校验库可以让你的工作变简单。
进攻是最好的防守。
数据库抽象化
在 OWASP Top 10 Security Vulnerabilities 排首位的是注入攻击。这意味着有些人还没有使用安全的工具来查询数据库。使用数据库抽象包或库。在 PHP 里可以使用 PDO 来确保基本的注入攻击防范。
不要重复发明轮子
不用框架(或微框架)吗?这并不仅跟框架有关,也意味着可以方便地使用已经存在的、经过测试的、受万千开发者信任的、稳定的新特性,而不是只为了自己从中受益而制作的东西。自己创建方法的唯一原因是需要的东西不存在,或存在但不符合的需求(性能差、缺失特性等等)。
这就是所谓的智能代码重用。
不要相信开发者
防御性编程与防御性驾驶相关联。在防御性驾驶中,假设周围的每个人都可能犯错。所以要留意别人的行为。相同概念也适用于防御性编程,作为开发者不要相信其他开发者的代码。
在很多人参与的大型项目中,有许多方式编写并组织代码。这也导致混乱甚至更多的 bug。这也是需要加强规范代码风格和代码检查的原因。
编写符合 SOLID 原则的代码
这是(防御性)编程最困难的部分——编写不糟糕的代码。这也是很多人知道并一直在讨论的,但没有人真正关心或将注意力和精力放在实现符合 SOLID 原则的代码上。
编写测试
编写单元测试可以帮助秉承一般的原则,比如高内聚、单一职责、低耦合和正确的对象组合。它不仅帮助测试小的单元用例,也能测试你组织对象的方式。当测试小功能时,会清晰的看到需要测试多少情况和需要模拟多少对象,来达到 100% 的覆盖率。
----莱芜软件开发----
想要了解更多详情欢迎来电咨询18678812288,或登陆网址www.sdxinnongcun.com。联系人:王经理。
上一篇:Java编程语言特点
上一篇:内建安全的软件开发