8个开发更安全代码的简单规则

目录

习惯 1:承担责任

习惯 2:永远不相信数据

习惯 3:模拟针对您的代码的威胁

习惯 4:始终提前一步

习惯 5:模糊!

习惯 6:不要编写不安全的代码

习惯 7:识别策略不对称

习惯 8:尽可能使用最佳工具

我非常荣幸在过去的几年中曾经与数千位出色的开发人员一起工作,他们希望了解如何编写更安全的 软件。在此期间,我也从构建安全系统方面表现出色的人员那里学到了很多东西,这使我开始思考一个问 题。我在想“安全开发人员”之间是否有共同的技能或习惯。答案是当然有!本文介绍了安全代码开发人 员之间共有的一系列习惯。

目前我可以肯定的一点是,任何看过这篇文章的人都会立即发现自己不具备的习惯。这非常好。我知 道除此以外还有其他好的想法。这里只是列出我所观察到的!因此,下面介绍的是我在这几年中注意到的 几种典型习惯。

习惯 1:承担责任

这是长期以来“没有银弹”观点的一种转变,该观点是 25 年前 Fred Brookes 在其“人月神话”一 书中提出的。能否使您的产品具有足够的安全性完全取决于您自己。其他任何人或任何出色的工具或编程 语言都无法解决所有安全隐患。不要误解我的意思,我喜欢源代码分析工具,但他们无法神奇般地修复您 的所有安全漏洞。只有您自己可以做到这一点。

只有创建安全设计和编写安全代码的开发人员才能构建出安全产品。最后,编写代码由个人完成。工 具不能取代个人完成这项工作。因此,您产品的安全性就是您的责任!Blaster 和 CodeRed 蠕虫利用的 就是个人编写的代码(参见图 1)。

图 1 有弱点的代号是人编写的

时间: 2025-01-31 02:10:19

8个开发更安全代码的简单规则的相关文章

安卓简单app开发实践,代码完成后没报错,但功能就是无法使用,学生菜鸟,求指导

问题描述 安卓简单app开发实践,代码完成后没报错,但功能就是无法使用,学生菜鸟,求指导 想把网上一个简单记事本的功能(编辑,保存,修改,删除)添加入一个含三个Fragment的app框架中,但添加并把提示的错误修改后发现功能根本不管用,图标都不能点击,运行结果中console显示[2015-07-14 22:44:42 - ddms] Can't bind to local 8700 for debugger. 解决方案 看下防火墙和杀毒软件设置,提示是端口没法绑定. 解决方案二: 直接使用真

用 PHP 开发健壮的代码(二):有效地使用变量

变量 "用 PHP 开发健壮的代码"是关于解决大中型应用程序中的实际问题的系列文章.在本文中,PHP 老手 Amol Hatwar 讨论了如何有效地使用变量.他还演示了如何通过使用 PHP 中可变的变量名来构造配置文件解析器,以便简化脚本配置.在我的前一篇文章中,我研究了在规划.设计甚至编写代码期间必须考虑的一些因素.在本文中,您将真正接触到实际代码,并可以看到实际运行中的一些东西.如果您还没有看过前一篇文章,那么最好现在就看一看. 正确处理变量变量与函数是任何计算机语言必不可少的要素

用 PHP 开发健壮的代码(一):高屋建瓴的介绍

用 PHP 开发健壮的代码 系列文章是关于解决大中型应用程序中的实际问题的.这一系列文章主要侧重于 PHP 4 中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门.在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码.在这第一篇文章中,PHP 高手 Amol Hatwar 从更高的角度介绍了如何为中到大型 Web 应用程序设计和编写无错误.可维护的代码.如果您是一名构建 Web 应用程序的开发者并且需要速度.功能和平台独立性(platform-independence)

用PHP开发健壮的代码,第1部分

用PHP开发健壮的代码系列文章是关于解决大中型应用程序中的实际问题的.这一系列文章主要侧重于PHP4中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门.在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码.在这第一篇文章中,PHP高手Amol Hatwar从更高的角度介绍了如何为中到大型Web 应用程序设计和编写无错误.可维护的代码. 如果您是一名构建Web应用程序的开发者并且需要速度.功能和平台独立性(platform-independence),那么PHP将适合您.

这些小工具让你的Android开发更高效_Android

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia

编写更好代码的 6 个提示 【已翻译100%】

每周我都可以用四种不同的语言编写至少几百行代码.我也可以同其他与我一同工作的开发者协作进行代码的编辑和审查. 简单来说,有许多代码在到处放着,当它们没有被组织管理起来,但 更重要的是当它们没有写好时,事情就会变得有点复杂起来.让我们来看一看几种能提升我们的代码整体质量的不同方法. 1. 开始构建模块 保持代码一致,可重用且有组织的一个最好方式就是将功能成组的放在一起.例如,别把你所有的js代码都扔到一个main.js文件中,而是要尝试基于功能将它们分组放在分开的文件里面, 然后在你达成你的构建步

PHP分页初探 一个最简单的PHP分页代码的简单实现_php实例

PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核心就是围绕这条语句展开的,SQL语句说明:查询goods数据表从第2条数据开始取出7条数据.在分页代码中,7表示每页显示多少条内容,2通过公式计算表示翻页数,通过传入不同参数替换"2"的值,即可筛选出不同的数据. index.php: include 'conn.php'; //引入数据库

PHP分页初探 一个最简单的PHP分页代码的简单实现

PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核心就是围绕这条语句展开的,SQL语句说明:查询goods数据表从第2条数据开始取出7条数据.在分页代码中,7表示每页显示多少条内容,2通过公式计算表示翻页数,通过传入不同参数替换"2"的值,即可筛选出不同的数据. index.php: include 'conn.php'; //引入数据库

这些小工具让你的Android开发更高效

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia