每个程序员应该了解哪些安全性?

我是一名IT专业的学生,​​现在已经进入大学三年级。 到目前为止,我们一直在研究大量与计算机相关的主题(编程,算法,计算机体系结构,数学等)。

我非常肯定,没有人能够了解每一件有关安全的事情,但是确信每个程序员或IT学员都应该知道这个“最低限度”的知识,而我的问题是这个最低限度的知识是什么?

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


如果您希望您的应用程序安全,请牢记以下原则:

  • 不要相信任何输入!
  • 验证来自所有不受信任来源的输入 - 使用白名单而不是黑名单
  • 从一开始就计划安全 - 最终不会出现这种情况
  • 保持简单 - 复杂性会增加安全漏洞的可能性
  • 尽量减少攻击面
  • 确保你安全地失败
  • 深度使用防御
  • 坚持最小特权原则
  • 使用威胁建模
  • 分区 - 所以你的系统不是全部或没有
  • 隐藏秘密很难 - 隐藏在代码中的秘密不会长久保密
  • 不要编写你自己的密码
  • 使用加密并不意味着你是安全的(攻击者会寻找一个较弱的链接)
  • 注意缓冲区溢出以及如何防范它们
  • 有一些关于使您的应用程序安全的优秀书籍和文章:

  • 编写安全代码第二版 - 我认为每个程序员都应该阅读它
  • 构建安全软件:如何以正确的方式避免安全问题
  • 安全编程指南
  • 开发软件
  • 安全工程 - 一个很好的阅读
  • Linux和Unix HOWTO的安全编程
  • 培训您的开发人员应用安全最佳实践

    代码化(付费)

    安全创新(付费)

    安全指南针(付费)

    OWASP WebGoat(免费)


    程序员的安全规则#1: 不要自己动手

    除非您自己是安全专家和/或密码专家,否则请始终使用经过良好设计,经过充分测试并且成熟的安全平台,框架或库来为您完成工作。 这些东西花费了数年的时间,由专家和黑客进行了修补,更新和检查。 你想获得这些优势,而不是通过试图重新发明车轮来解雇他们。

    现在,这并不是说你不需要学习任何有关安全的知识。 你当然需要足够的了解,了解你在做什么,并确保你正确地使用这些工具。 但是,如果您发现自己开始编写自己的密码算法,认证系统,输入消毒剂等,请停止,退后一步,并记住规则1。


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

    在不知道系统如何被利用的情况下,你意外地阻止了漏洞。 知道如何修补代码是绝对没有意义的,除非你知道如何测试你的补丁。 安全不仅仅是一堆思想实验,你必须科学地测试你的实验。

    链接地址: http://www.djcxy.com/p/21667.html

    上一篇: What should every programmer know about security?

    下一篇: What is the best way to implement "remember me" for a website?