程序员都应该了解哪些安全知识

转载 2012年03月31日 12:11:35
导读:本文来自 StackOverflow 上的一个问答贴。网友 M.H 提问: 我是一名 IT 专业学生,现在是大三,直到现在我们才开始学习很多计算机相关的课程(编程、算法、计算机体系结构、数学等……)。

  但是还有一个叫“安全”的世界离我们很远,我是指:计算机安全、互联网安全、网络安全、Hacking、破解等。 

  我很确信没有人可以知晓所有安全知识,但我确信,肯定有一定的“最低限度”知识,是每个程序员或 IT 学生应当了解的。我的问题是,那些“最低限度”知识包括了哪些?希望您能给我建议一些电子书,或课程,或任何有助于我探索这条路的东西。

  目前这个问题得分最高的回复是由 bignum 提供的,如下:

  如果想要你的程序是安全的,请记住如下原则:

  ● 不要信任用户的输入信息!

  ● 验证所有来自非信任源的输入信息,是使用白名单,不是黑名单。

  ● 从一开始就要策划安全。安全并不是可以在最后来做的。

  ● 保持简单。复杂性会增加安全漏洞的可能性。

  ● 最低限度保持你程序的攻击面(attack surface)。

  ● 确保程序有“自动防故障装置”(Fail-safe

  ● 采用深度防御(defence in depth

  ● 坚持最小特权原则(least privilege

  ● 采用威胁建模(threat modelling)(Web 程序更应如此)

  ● 权限分离(Compartmentalize

  ● 没有不透风的墙,在代码中隐藏秘密都无法长久。

  ● Don’t write your own crypto / 不要自己编写一种加密方法 (译注:见下文另外一位网友的回复)

  ● 采用加密(crypto),并不意味着你就安全了(攻击者会寻找弱点)

  ● 注意缓冲区溢出,并了解如何防范

Tyler McHenry 也给出了他认为程序员做安全的第一原则:Don’t roll your own。除非你是安全专家或密码破译专家,否则就采用现有的成熟安全平台、框架、或库。这些东西都经过了专家和黑客们深思熟虑、修补、更新和检测。你得利用这些优势,而不是忽视,试图推到重来

程序员都应该了解哪些安全知识

导读:本文来自StackOverflow上的一个问答贴。网友 M.H 提问: 我是一名IT专业学生,现在是大三,直到现在我们才开始学习很多计算机相关的课程(编程、算法、计算机体系结构、数学等……)。 ...
  • tywali
  • tywali
  • 2012年03月28日 11:31
  • 174

每个程序员都应该了解的内存知识1——内存概述

英文原文:https://lwn.net/Articles/250967/ 1、概述 早期的计算机很简单,它的各种组件如CPU、内存、大容量存储和网络接口都是一起开发的,所以性能差不多。举个...

为SSD编程(6):总结—每个程序员都应该了解的关于固态硬盘的知识

原文:http://codecapsule.com/2014/02/12/coding-for-ssds-part-6-a-summary-what-every-programmer-should-k...

每个程序员都应该了解的知识有哪些?

英文链接:What should every programmer know about web development?   以下内容来自于 Stack Overflow 的一个问答中,此问题的答...

每个程序员都应该了解的“虚拟内存”知识(Memory part 3: Virtual Memory)

[编辑注:本文是Ulrich Drepper的“每个程序员应该了解的内存方面的知识”文章的第三部分;这一部分谈论了虚拟内存,特别是TLB性能。没有阅读第1部分和第2部分的人可能现在就想读一读了。和往常...

每个程序员都应该了解的内存知识

1 简介 早期计算机比现在更为简单。系统的各种组件例如CPU,内存,大容量存储器和网口,由于被共同开发因而有非常均衡的表现。例如,内存和网口并不比CPU在提供数据的时候更(特别的)快。 曾...

每个程序员都应该了解的“虚拟内存”知识

英文原文:Memory part 3: Virtual Memory [编辑注:本文是Ulrich Drepper的“每个程序员应该了解的内存方面的知识”文章的第三部分;这一部...

每个程序员都应该了解的内存知识(一)

http://web.itivy.com/article-346-1.html [编辑的话: Ulrich Drepper最近问我们,是不是有兴趣发表一篇他写的内存方面的长文。我们不用看太多...

每个程序员都应该了解的内存知识(二)

http://web.itivy.com/article-347-1.html 每个程序员都应该了解的内存知识(一) 接下来的章节会涉及更多的有关访问DRAM存储器的实际操作的细节。我...

总结—每个程序员都应该了解的固态硬盘知识

在这部分,我以独立的简单段落的形式总结了其它部分的内容。每个段落概括了其他部分一节或几节的内容,这样可以让读者在每个主题下能够得到更多细节。 基础 1. 存储单元类型 固态硬盘(SS...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序员都应该了解哪些安全知识
举报原因:
原因补充:

(最多只允许输入30个字)