我是一名IT专业的学生,我现在在大学三年级。到目前为止,我们已经学习了很多与计算机相关的学科(编程、算法、计算机体系结构、数学等)。

我很确定没有人能学会所有关于安全的知识,但肯定有一个“最低限度”的知识每个程序员或IT学生都应该知道,我的问题是这个最低限度的知识是什么?

你能建议一些电子书或课程或任何可以帮助我们开始这条路的东西吗?


当前回答

对用户的密码加盐和散列。永远不要将它们以明文形式保存在数据库中。

其他回答

你应该知道三个A。认证、授权、审计。典型的错误是验证用户身份,而不检查用户是否被授权执行某些操作,因此用户可能会查看其他用户的私人照片,Diaspora所犯的错误。很多人忘记了审计,在一个安全的系统中,你需要能够知道谁在什么时候做了什么。

每个程序员都应该知道如何编写利用代码。

如果不知道系统是如何被利用的,你就会意外地阻止漏洞。除非你知道如何测试你的补丁,否则知道如何打补丁是毫无意义的。安全不仅仅是一堆思想实验,你必须科学地测试你的实验。

安全是一个过程,而不是一个产品。

许多人似乎忘记了这个显而易见的事实。

记住,你(程序员)必须确保所有部分的安全,但攻击者只需要成功地找到你盔甲中的一个漏洞。 安全就是“未知的未知”的一个例子。有时你不知道可能的安全漏洞是什么(直到事后)。 漏洞和安全漏洞之间的区别取决于攻击者的智力。

关于安全的一般信息,我强烈推荐阅读Bruce Schneier。他有一个网站,他的密码通讯,几本书,还做了很多采访。

我也会熟悉社会工程(和Kevin Mitnick)。

对于一本关于安全在现实世界中如何发挥作用的好书(而且相当有趣),我会推荐这本优秀的(尽管有点过时)克里夫·斯托尔的《布谷鸟的蛋》。