`
wanghailiang333
  • 浏览: 199564 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

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

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

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

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

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

● 采用深度防御(defence in depth)

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

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

● 权限分离(Compartmentalize)

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

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

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

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

 

英文原文:StackOverflow

分享到:
评论

相关推荐

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

    导读:本文来自StackOverflow上的一个问答贴。网友M.H提问:我是一名IT专业学生,现在是大三,直到现在我们才开始...  我很确信没有人可以知晓所有安全知识,但我确信,肯定有一定的“最低限度”知识,是每个程序员或I

    每个程序员都应该看看的

    【标题】:“每个程序员都应该看看的” 【描述】:“适合于每个做程序开发的人,特别是刚开始学程序的!更应该好好看看!”这句话暗示了这份资料是面向初学者和程序员的通用指南,它可能包含了编程基础知识、最佳...

    为什么每个程序员都应该学习代码编译器知识

    每个程序员都应该学习代码编译器知识,因为编译器不仅是将源代码转化为可执行程序的工具,而且深入了解编译器的运作机制可以帮助我们编写出更高效、更清晰的代码。以下是一些关于编译器及其相关知识的重要点: 首先...

    优秀的PHP程序员至少应该了解PHP代码的优缺点

    标题和描述中提到的核心知识点是,优秀的PHP程序员需要理解PHP代码的优缺点,这涉及到代码的结构化、规范化、自适应性和安全性。以下是对这些方面更详细的解释: 1. 结构化代码:良好的PHP代码应该遵循模块化和分层...

    程序员考试 程序员考试

    根据给定的文件信息,我们可以总结出一系列与“程序员考试”相关的知识点,这些知识点涵盖了从基本的编程语言到系统安全、网络协议等广泛领域。以下是对这些知识点的详细阐述: ### 1. 数据结构与算法 数据结构是...

    Java程序员应该了解的10个面向对象设计原则

    依赖注入或倒置原则要求高层模块不应该依赖于低层模块,两者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。 **应用场景与实践:** - **依赖注入框架:** 使用如Spring框架提供的依赖注入功能。 - *...

    程序员应该具备的12种能力

    行业,程序员的能力不仅仅局限于编程,而是需要一系列综合技能来确保软件开发的成功。以下是对程序员应具备的12种能力的详细解析: 1. **编程语言能力**:精通一门编程语言是程序员的基础,这意味着深入理解语法、...

    程序员教程(pdf)

    它涵盖了程序员需要掌握的各种关键知识点,无论你是刚踏入编程领域的新人,还是希望巩固和提升现有技能的开发者,都能从中受益。 首先,教材的基础部分将引导你走进编程世界,讲解编程语言的基本语法和逻辑。这包括...

    每个程序员都应该知道的97件事

    以上七个知识点只是《每个程序员都应该知道的97件事》这本书中的一小部分,但它们涵盖了软件开发过程中的一些关键方面,包括代码质量、用户体验、团队协作等多个维度。对于任何想要成为优秀程序员的人来说,深入理解...

    java 程序员 必备知识 劳动法

    在IT行业中,作为Java程序员,了解一定的劳动法规是非常重要的,这不仅有助于保护自己的合法权益,也有助于理解并遵守企业合规性。以下是一些与“Java程序员必备知识 劳动法”相关的知识点: 1. **劳动合同**:每个...

    2018程序员考试大纲

    最后,作为一名程序员,了解信息技术标准、系统安全性、相关法律法规也是必备的知识。这些知识有助于考生在实际工作中遵守行业规范,保护软件知识产权,确保个人信息和系统安全。 总结来说,《2018程序员考试大纲》...

    黑马程序员Javase笔记

    Java是世界上最流行的编程语言之一,尤其在...总结来说,"黑马程序员Javase笔记"涵盖了Java的基础语法、内存管理、面向对象编程、集合框架以及泛型和Map等内容,这些都是成为一名合格Java开发者必须掌握的核心知识。

    程序员职业素养以及转型

    程序员需要熟悉Java语法、面向对象编程概念、异常处理、多线程编程以及Java集合框架等核心知识。随着技术发展,Spring框架、MyBatis、Hibernate等开源工具也成为了Java开发者的必备技能。 在“产品”标签下,我们...

    java程序员需要掌握的知识点

    ### Java程序员需要掌握的知识点 在当今竞争激烈的IT行业中,作为一名Java程序员,掌握全面而深入的技术知识至关重要。根据提供的信息,我们将重点分析几个关键的知识领域,这些领域在百度、阿里巴巴和京东等大公司...

    2018程序员上午题

    综上所述,2018年的程序员考试涵盖了广泛的IT知识,包括软件开发规范、统计学基础、办公软件应用、电子邮件结构、计算机硬件、系统总线原理、网络技术、软件版权法以及网络安全。这些知识对于IT从业者来说是必备的...

    程序员级高级程序员级程序设计

    《程序员级高级程序员级程序设计》是一门深入探讨高级编程技术的课程,旨在提升程序员的技能水平,使之能够更高效、更智能地进行软件开发。本课程覆盖了多个关键的知识点,包括但不限于算法优化、数据结构、并发编程...

    程序员面试笔试宝典

    除了这些核心主题,这份宝典可能还包含了关于设计模式、并发编程、网络编程、性能优化、数据结构与算法等方面的知识,这些都是Java程序员在面试时可能面临的挑战。设计模式可以帮助你更好地理解和设计软件架构,而...

    2009年程序员考试大纲

    本文主要介绍了2009年程序员考试大纲,涵盖了计算机与软件工程基本知识、计算机系统基础知识、网络基础知识、数据库基础知识、多媒体基础知识、系统性能指标、计算机应用基础知识、系统开发和运行知识、信息安全基础...

    程序员都在用的一些小工具合集

    标题 "程序员都在用的一些小工具合集" 暗示了这个压缩包内包含了一些针对程序员日常工作中常用或实用的工具。这些工具可能是为了提高效率、优化开发流程、解决特定问题而设计的。程序员通常会寻找能提升生产力的工具...

Global site tag (gtag.js) - Google Analytics