`
rplees
  • 浏览: 11904 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论

分享 安全编程法则

阅读更多
标有 (*) 的检查项目表示该项是针对相关问题的根本解决方法,应当尽最大努力去完成这些内容。 未标 (*) 的项目,表示该项并不能完全消除安全隐患,只是说通过这种方法可以避免发生安全问题。
   1. SQL注射
         1. (*) 在组合SQL语句时要使用SQL变量绑定功能
         2. (*) 如果数据库不提供变量绑定,那么需要对构成SQL的所有变量进行转义
         3. 不要将错误信息原封不动地显示在浏览器中。
         4. 为访问数据库的用户设置适当的权限。
   2. 操作系统命令行注射
         1. (*) 避免使用能启动shell命令的语言
         2. 使用的语言如果允许启动shell命令,则需要对该功能的参数种的所有变量进行检查,确保只包含合法的操作
   3. 不检查路径名参数/目录遍历
         1. (*) 不要将外部传进来的参数直接作为文件名来使用
         2. (*) 将打开文件的操作限制在固定的目录中,并禁止文件名中包含路径
         3. 为Web服务器上的文件设置正确的访问权限
         4. 检查文件名
   4. 会话管理的问题
         1. (*) 用难以推测的内容作为会话ID
         2. (*) 不要在URL中保存会话ID
         3. (*) 为https协议中使用的cookie设置secure属性
         4. (*) 登录成功后生成新的会话
         5. (*) 登录成功后,在会话ID之外再生成一个秘密信息,每次访问页面时都检查之
         6. 不使用固定值作为会话ID
         7. 将会话ID保存到Cookie中时,要设置有效期限
   5. 跨站脚本攻击(XSS)
          * 不允许输入HTML内容时的解决方法
               1. (*) 输出到页面上的所有内容都要转义
               2. (*) 输出URL时仅允许以“http://”或“https://”开头的URL
               3. (*) 不要动态生成<script>…</script>的内容
               4. (*) 不要从外部网站读入样式表
               5. 检查输入内容
          * 允许输入HTML内容时的解决方法
               1. (*) 解析输入的HTML内容,生成解析树,然后提取其中的非脚本部分
               2. 使用脚本删除输入的HTML内容中的相关字符串
          * 通用解决方法
               1. (*) 应答的HTTP头重指定Content-Type的charset属性
               2. 为避免Cookie情报泄漏,应禁止Trace方法,并对所有Cookie设置HttpOnly属性
   6. 跨站请求伪造(CSRF)
         1. (*) 所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行
         2. (*) 执行业务之前再次要求输入密码
         3. (*) 确认Referer是否正确,只有正确时才执行
         4. 执行重要操作时,向预先设置的邮件地址中发送邮件
   7. HTTP头注射
         1. (*) 不直接输出HTTP头,而使用运行环境提供的头信息输出API
         2. (*) 无法使用API时,要禁止输入的头信息中的换行
         3. 删除所有外部输入中的换行
   8. 邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
         1. (*) 不使用外部参数作为邮件头信息
         2. 必须用外部参数设置头信息时,要删除其中的危险字符。
分享到:
评论

相关推荐

    Web 2.0 编程思想:16条法则

    ### Web 2.0编程思想:16条法则 #### 法则一:明确目标与需求 在开发任何Web 2.0应用之前,需要明确其核心价值与目标。这包括确定应用程序的主要功能(如标签、评论、编辑页面等),并确保这些功能能够满足用户的...

    小菜编程成长记

    《小菜编程成长记》通过多个章节分享了编程经验,首先它提到了面向对象思想的胜利,通过活字印刷的类比,阐述了面向对象编程的可维护性、复用性、可扩展性和灵活性。这是面向对象编程的核心理念。 作者以面试经历...

    Web2.0编程思想:16条法则

    以下是对Web 2.0编程思想16条法则的详细解读: 1. **用户生成内容 (User-Generated Content, UGC)**: 用户不再仅仅是信息的消费者,而是内容的创造者和分享者。例如,社交媒体平台允许用户发布文字、图片、视频,...

    PHP 高级编程 原版书籍 PDG 版本

    13. **PHP最佳实践**:分享一些开发过程中的经验法则,以帮助开发者遵循良好的编程习惯和设计模式。 通过阅读这本《PHP高级编程》,开发者不仅可以掌握PHP的高级特性,还能学习到如何编写高质量、可维护的代码,...

    一名JAVA程序员,将自己的编程学习之路做以总结并进行分享

    理解客户端-服务器模型、套接字编程、网络安全和性能优化等概念,将有助于你在开发分布式系统或Web应用时做出更好的决策。 综上所述,JAVA程序员的学习之路涵盖了广泛的知识点,从基础的数据结构和算法,到数据库、...

    openssl编程指导(中文)

    摘要算法则是用来生成数据的固定长度哈希值,如MD5、SHA系列。公钥算法(也称为非对称加密算法)使用一对密钥,公钥用于加密,私钥用于解密,如RSA、DSA等。这些算法是现代信息安全的基石。 手册中提到的回调函数是...

    核动力厂基于计算机的安全重要系统的软件.pdf

    - 安全标准分为三个级别:安全基本法则、安全要求和安全导则。其中,安全导则提供了具体的实施指导。 - 这些标准不仅为成员国提供指导,还鼓励成员国之间分享信息和最佳实践。 2. **核动力厂基于计算机的安全系统...

    安全员考试参考试题及答案分享.pdf

    6. 基础材料和结构:水泥、木材、钢材是建筑工程的基础,对于网络安全来说,基础架构如网络设备、操作系统、编程语言等是构建安全网络的基石。 7. 冷弯性能与材料韧性:材料的冷弯性能在网络技术中可理解为系统的...

    一个30多年编程经验的程序员总结

    从这位30多年编程经验的程序员总结中,我们可以提炼出多个重要的IT和软件开发知识点: 1. 产品开发与用户需求理解: - 用户在接触到产品原型后,往往才能明确表达出真正的需求。 - 功能性原型设计比起详细的文字...

    课程设计:动态资源分配算法演示程序.doc

    安全性算法则通过寻找一个安全序列,这个序列中的每个进程都能依次获得其所需资源并完成执行,而不影响其他进程的资源需求。 4. 在程序设计与实现中,首先需要设计程序流程图,明确程序运行的逻辑步骤。接着是编写...

    002、流水灯.7z002、流水灯.7z

    循环计数法则通过改变控制变量的值,逐个点亮LED。 四、编程流程 1. 初始化:设置微控制器的IO口为输出模式,并设置初始状态。 2. 主循环:在主程序中,通过循环控制每个LED的状态,依次点亮或熄灭。 3. 延时处理:...

    C++OpenCV3源代码分水岭算法

    在本次的知识点整理中,我们将从给定的文件信息中提取与C++、OpenCV以及分水岭算法相关的信息,并详细阐述...在此,提醒用户注意网络安全和个人隐私保护,在获取和使用资源时确保来源的可靠性,并遵守相关法律法规。

    the-mozaic.pdf

    最后,书中所有的文章都遵循了Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license(简称CC BY-NC-SA 3.0),这是一种版权协议,它允许非商业性分享和再使用,只要按照协议要求保留原作者...

    道法自然 面向对象实践指南3_3

    《道法自然 面向对象实践...作者可能通过案例分析、代码示例和实践经验分享,帮助读者深化对面向对象编程的理解,提升编程技能。通过学习本书,开发者能够更好地设计和实现符合自然法则、高效且易于维护的软件系统。

    python基于Django的lsb算法与rsa算法信息隐藏算法源码数据库论文.doc

    最后,论文可能提出了对未来工作的展望,例如探索更高级的隐写术,结合其他加密算法,或者研究如何将此系统应用于实际的网络安全场景,如企业内部通信、文件分享等。 总之,本篇毕业设计论文详细探讨了如何利用...

    数值分析实验报告

    5. **数值微积分**:涉及到数值积分,如辛普森法则、梯形法则和矩形法则,以及求解偏微分方程的有限差分法。 6. **STL(标准模板库)**:在C++编程中,STL提供了一组高效的数据结构(如向量、列表、映射)和算法,...

    effective c++ 3rd 英文版

    本书之所以能够获得如此广泛的认可,主要是因为它采取了一种实用的方法来教授C++编程,揭示了专家们在编写清晰、正确且高效的代码时所遵循的经验法则。 #### 二、作者简介 Scott Meyers是一位著名的软件工程师和...

    java疯狂讲义,PDF版最新全版

    - **泛型**:解释泛型的概念及其在Java中的实现方式,帮助学习者理解如何使用泛型提高代码的复用性和安全性。 - **枚举与注解**:介绍枚举类型的使用场景以及注解在代码元数据管理方面的应用。 - **多线程编程**:...

    Java程序员+上班那点事儿

    《Java程序员+上班那点...通过阅读《Java程序员+上班那点事儿》,读者不仅可以学到扎实的Java编程技能,还能了解到职场生存法则,全面提升自己的职业素养。无论你是刚入门的新手还是有一定经验的开发者,都能从中受益。

    RSA-[removed]RSA的Java语言中的Créervotre propre运算法则

    【标题】: "RSA算法在Java中的实现——创建自己的...总的来说,理解和实现RSA加密算法对于深入学习信息安全和网络编程至关重要。通过Java或JavaScript,我们可以创建自己的加密规则,增强数据保护,确保通信的安全性。

Global site tag (gtag.js) - Google Analytics