我是一名IT专业的学生,我现在在大学三年级。到目前为止,我们已经学习了很多与计算机相关的学科(编程、算法、计算机体系结构、数学等)。
我很确定没有人能学会所有关于安全的知识,但肯定有一个“最低限度”的知识每个程序员或IT学生都应该知道,我的问题是这个最低限度的知识是什么?
你能建议一些电子书或课程或任何可以帮助我们开始这条路的东西吗?
我是一名IT专业的学生,我现在在大学三年级。到目前为止,我们已经学习了很多与计算机相关的学科(编程、算法、计算机体系结构、数学等)。
我很确定没有人能学会所有关于安全的知识,但肯定有一个“最低限度”的知识每个程序员或IT学生都应该知道,我的问题是这个最低限度的知识是什么?
你能建议一些电子书或课程或任何可以帮助我们开始这条路的东西吗?
当前回答
对用户的密码加盐和散列。永远不要将它们以明文形式保存在数据库中。
其他回答
框架和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 :)
我建议查看CWE/SANS前25个最危险的编程错误。它在2010年进行了更新,并承诺在未来定期更新。2009年的修订版也可以使用。
从http://cwe.mitre.org/top25/index.html
The 2010 CWE/SANS Top 25 Most Dangerous Programming Errors is a list of the most widespread and critical programming errors that can lead to serious software vulnerabilities. They are often easy to find, and easy to exploit. They are dangerous because they will frequently allow attackers to completely take over the software, steal data, or prevent the software from working at all. The Top 25 list is a tool for education and awareness to help programmers to prevent the kinds of vulnerabilities that plague the software industry, by identifying and avoiding all-too-common mistakes that occur before software is even shipped. Software customers can use the same list to help them to ask for more secure software. Researchers in software security can use the Top 25 to focus on a narrow but important subset of all known security weaknesses. Finally, software managers and CIOs can use the Top 25 list as a measuring stick of progress in their efforts to secure their software.
只是想把这个分享给网页开发者:
security-guide-for-developershttps: / / github.com/FallibleInc/security-guide-for-developers
当你创建任何企业或任何自己的软件时,你应该像黑客一样思考。正如我们所知,黑客也不是所有事情的专家,但当他们发现任何漏洞时,他们开始通过收集所有事情的信息来挖掘它,最终攻击我们的软件。所以为了防止这种攻击,我们应该遵循一些众所周知的规则,比如:
总是尝试破译你的密码(使用小抄和谷歌之类的东西来获取更多信息)。 更新编程域中的安全漏洞。 如上所述,永远不要相信任何类型的用户或自动输入。 使用开源应用程序(它们的大多数安全缺陷已经被知道并解决了)。
你可在以下连结找到更多保安资源:
owasp安全 CERT安全 无安全 netcraft 太空安全 openwall PHP交会 Thehackernews(不断更新自己)
有关应用程序供应商安全流程的更多信息谷歌。
每个程序员都应该知道如何编写利用代码。
如果不知道系统是如何被利用的,你就会意外地阻止漏洞。除非你知道如何测试你的补丁,否则知道如何打补丁是毫无意义的。安全不仅仅是一堆思想实验,你必须科学地测试你的实验。