安全编程HOWTO-创建安全软件

大卫·A·惠勒的照片这是我的免费书的主要网站安全编程HOWTO(之前标题为Linux和Unix HOWTO的安全编程Linux HOWTO的安全编程).本书提供了一套设计和实现编写安全程序的指南。这些程序包括用作远程数据查看器的应用程序,网络应用程序(包括CGI脚本),网络服务器和setuid/setgid程序。本文件包括多种语言的具体指南,包括C、C++、Java、Perl、Python和Ada95。我把这本书送给大家,希望未来的软件开发人员不会重复过去的错误,从而使系统更加安全。

获取本书的当前版本

你可以通过以下方式获得这本书:

  1. 多页HTML(适合在线查看)
  2. 单个长HTML
  3. PDF(适合打印)

获取旧版本

您可以获得某些旧版本:

如果您将这本书指定为课堂教科书,您可能需要指定上面列出的特定版本,因为当前版本在没有警告的情况下更新。

本文档是Linux文档项目(LDP),因此,也在各种Linux发行版中分发。然而,请注意LDP的版本或CD-ROM发行版中的版本可能不如主(主)网站的最新版本https://dwheeler.com/secure-programs网站

演示文稿

关于开发的演示基于该书的安全软件可用这些演示文稿来自我教的研究生课程乔治·梅森大学(SWE 681/ISA 681)安全软件的设计与实现。阅读演示文稿与上课不同,但你可能会发现它们非常有帮助。

视频“如何开发安全应用程序:BadgeApp示例”浏览BadgeApp程序的“保证案例”。保证案例只是一个结构化的论点,可以解释(在这种情况下)为什么它足够安全。我认为示例在学习时非常有用-我希望你也能发现它很有用。

捐赠!

我很乐意接受捐款。简单的方法是使用贝宝捐赠dwheeler@dwheeler.com。非常感谢你的慷慨!

相关材料

从灾难中学习是一组描述具体严重问题的文章(比如心脏出血)还有什么我们应该吸取的教训。我书中关于开发安全软件的大部分材料都是基于从过去的错误中吸取教训。

安全软件开发基础(edX)一套自由的安全软件开发课程(我是作者)。

荣誉

许多人都对我的书说了好话。这里有几个:

评论?

如果您有意见、建议改进或打算翻译另一种人类语言,请给我发电子邮件我编辑SGML(DocBook DTD)文件;所有其他格式都是从这个主版本生成的。您还可以看到更改日志和的用户SGML格式可以找到生成文件非常有用。截至2002年2月28日,我已经转向自民党的文件生成过程(例如,使用HTMLDOC),我think比我以前使用的工具产生更好的结果。注意,从2.00版开始,该文档在SGML中使用DocBook DTD;1.60之前的版本都是SGML但他们使用了Linuxdoc DTD。我留下了本文档的旧版本来帮忙翻译人员以格式处理这种转换。

我意识到从那以后出现了其他一些文章/书籍。其中包括Ajax十大安全漏洞和驱动因素Shreeraj Shah-net广场(2006年11月10日)。

翻译

提供了多种翻译:

不能确保翻译准确反映英语原创作品;对不起,但我根本没有资格判断这一点。如果您在翻译中发现错误,请直接与翻译人员联系。如果您在基础内容中发现错误,或者没有得到满足向翻译报告错误时,请联系我。

我希望在我了解到它们时能提到或链接到其他翻译。翻译前请与我联系,以避免重复工作(例如,也许多个翻译人员可以分工),以及做完后告诉我。我非常感谢这些花时间翻译这部相当长的作品。

其他

我这里有一些与例如,这本书的材料,网址.pl是我用来测试复杂的URI验证模式。

该文件持续比典型的HOWTO更长;我可能最终会将其分为“短形式”和“长形式”。我还在考虑如何处理“长表单”的发布,因为我想很多人会想要一个装订精美的版本,这样他们就可以了读起来很容易。

当我写原创作品时,没有其他东西。事实上,这是第一本关于如何开发安全程序的书为软件开发人员编写。以前的书往往是为安全专家(而不是开发人员)编写的,或具有高级原理,而不是详细信息程序员实际上可以使用现在有很多材料(万岁!)。霍尔格·佩恩博士在网上提供了大学课堂的讲稿Robert C.Seacord在网上进行CMU讲座谷歌浏览器安全手册也可以使用。

你可能想看看我关于安全的其他作品。我的程序flawfinder是一个源代码安全扫描工具(“静态分析器”)报告源代码中可能存在的安全问题; 它的主页链接到其他分析程序和相关论文。我的论文软件配置管理(SCM)安全描述了对SCM系统有用的安全要求。保护Microsoft Windows(针对家庭和小型企业用户)解释了如何在Windows上设置一些基本的安全措施。我的论文反托拉斯通过多样的双编译描述了一种对抗技术“无法应对的”信任攻击;虽然我没有想到最初的想法,我从几句话中描述的想法发展而来证明它确实有效。

如果您对高保证软件感兴趣或自由库/开源软件(FLOSS),看一看我的论文高保证(安全或安保)和免费/开源软件(FLOSS),其中检查它们之间的关系;特别是,它列出了FLOSS有助于开发更高安全性软件的工具。

你可能对我的其他一些论文感兴趣。例如,许多人看我的论文为什么要开源软件/自由软件?看数字!欢迎访问我的主网站https://dwheeler.com