我是一名IT专业的学生,我现在在大学三年级。到目前为止,我们已经学习了很多与计算机相关的学科(编程、算法、计算机体系结构、数学等)。
我很确定没有人能学会所有关于安全的知识,但肯定有一个“最低限度”的知识每个程序员或IT学生都应该知道,我的问题是这个最低限度的知识是什么?
你能建议一些电子书或课程或任何可以帮助我们开始这条路的东西吗?
我是一名IT专业的学生,我现在在大学三年级。到目前为止,我们已经学习了很多与计算机相关的学科(编程、算法、计算机体系结构、数学等)。
我很确定没有人能学会所有关于安全的知识,但肯定有一个“最低限度”的知识每个程序员或IT学生都应该知道,我的问题是这个最低限度的知识是什么?
你能建议一些电子书或课程或任何可以帮助我们开始这条路的东西吗?
当前回答
另外,请务必查看OWASP前10名列表,以了解所有主要攻击载体/漏洞的分类。
这些东西读起来很吸引人。学习像攻击者一样思考将训练您在编写自己的代码时思考什么。
其他回答
每个程序员都应该知道如何编写利用代码。
如果不知道系统是如何被利用的,你就会意外地阻止漏洞。除非你知道如何测试你的补丁,否则知道如何打补丁是毫无意义的。安全不仅仅是一堆思想实验,你必须科学地测试你的实验。
你应该知道三个A。认证、授权、审计。典型的错误是验证用户身份,而不检查用户是否被授权执行某些操作,因此用户可能会查看其他用户的私人照片,Diaspora所犯的错误。很多人忘记了审计,在一个安全的系统中,你需要能够知道谁在什么时候做了什么。
一个好的入门课程可能是麻省理工学院的计算机网络与安全课程。我建议的一件事是不要忘记隐私。从某种意义上说,隐私确实是安全的基础,在有关安全的技术课程中并不经常涉及。你可能会在这门与互联网相关的道德与法律课程中找到一些关于隐私的材料。
框架和api中安全默认值的重要性:
Lots of early web frameworks didn't escape html by default in templates and had XSS problems because of this Lots of early web frameworks made it easier to concatenate SQL than to create parameterized queries leading to lots of SQL injection bugs. Some versions of Erlang (R13B, maybe others) don't verify ssl peer certificates by default and there are probably lots of erlang code that is susceptible to SSL MITM attacks Java's XSLT transformer by default allows execution of arbitrary java code. There has been many serious security bugs created by this. Java's XML parsing APIs by default allow the parsed document to read arbitrary files on the filesystem. More fun :)
只是想把这个分享给网页开发者:
security-guide-for-developershttps: / / github.com/FallibleInc/security-guide-for-developers