网站大量收购闲置独家精品文档,联系QQ:2885784924

CISP-2-安全编程.pptVIP

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CISP-2-安全编程ppt课件

信息安全技术 安全编程 中国信息安全产品测评认证中心(CNITSEC) 版本:CISP-2-安全编程(培训样稿) 前言 课程目的: 了解如何安全编程 帮助用户在实际编程中应用上述技术 为什么要安全编程 黑客可利用软件中的安全问题进行攻击,造成经济或者名誉损失 可能造成产品性能不稳定 软件的安全性不好影响客户信心,销售受挫 存在诸多安全问题的原因 现代软件开发周期短,工作量大,无暇顾及安全 软件开发人员缺乏安全编程经验 课程内容 通用安全编程原则 常见Web编程语言的安全编程 C、Asp、Perl、php、Jsp 其他应用程序的安全编程 缓冲区溢出 函数返回值检查 临时文件安全 竞争条件 软件开发过程中的一些安全考虑 通用安全编程原则 什么是一个安全的程序? 简单的说,无论使用何种破坏手段,都可以正确执行自己的既定任务,这样的程序就是安全的程序。 安全程序不应当损害它运行系统的本地安全策略。 程序员职责就是保证程序可以正常执行任务。 锁匠与锁, 屋主与关门 Solaris ‘login’的安全问题 什么是安全漏洞? 程序中存在的危害本地安全策略的问题或弱点 大多数是指那些会导致程序强制执行一些不同于作者本来意图的行为 常见安全漏洞类型 缓冲区溢出 竞争条件 输入检查错误 访问控制错误 设计错误 通用安全编程原则 程序只实现你指定的功能 永远不要信任用户输入,对用户输入数据做有效性检查 必须考虑意外情况并进行处理 不要试图在发现错误之后继续执行 尽可能使用安全函数进行编程 小心、认真、细致地编程 Web安全编程 Web CGI编程的常见问题 信息泄漏 泄漏web路径信息 泄漏系统文件内容 泄漏数据库内容 覆盖、重写系统或者数据库数据 执行系统命令 拒绝服务攻击 如何写一个安全的CGI程序 防止缓冲区溢出 小心调用外部命令 特殊字符的过滤 正确使用隐藏变量 使用cookie应注意的问题 提防拒绝服务攻击 使用正确的错误处理机制 CGI – 缓冲区溢出 什么是缓冲区溢出? 当向一个固定大小的缓冲区(buffer)中储存超量数据时,就会发生缓冲区溢出(Buffer Overflow) 缓冲区溢出的后果 如果使用随机数据,可能导致程序崩溃 如果精心构造溢出数据,可能改变程序执行流程,允许攻击者执行任意指令 影响语言: C/C++ 典型案例:count.cgi缓冲区溢出漏洞 CGI – 外部命令 原则 尽可能不调用外部命令 如果不得不调用,必须检查传递给外部命令的参数是否合法。只允许那些完全符合要求的参数通过。 CGI – 特殊字符(1) 原则 只让我们需要的字符通过检测 不是剔除非法字符而是检查是否在合法字符集内 不止是在调用外部命令时,在任何时候你都应该检查你页面的输入是否合法,当然这种检测没有一定的规律,要视你的CGI功能而定。要特别注意以下这些字符: ; * | ` $ ! # ( ) [ ] : { } “ ../ ..\ NULL CGI – 特殊字符(2) 一个非常著名的例子:phf 这个CGI程序在以前NCSA和APACHE WEB服务器中是默认安装的。phf程序通过popen()函数来传递数据到程序中剔除了一些已知的不良的字符,但是,它遗漏了其中一个字符:换行符(\n),当在远程主机使用SHELL解程序解析的时候,换行符扮演了命令分隔符,把分行符前字符串作为一个命令,而把换行符后面的字符串作为一个新命令,通过请求下面的ULR,就可能在主机上执行cat /etc/passwd的命令: /cgi-bin/phf?Qalias=hell%0acat%20/etc/passwd%0a CGI - 隐藏变量 原则 尽量不要使用隐藏变量传递数据 如果必须使用,应当在每个CGI中对所有的隐藏变量都进行检查。 在很多CGI程序中,人们喜欢用隐藏变量来传递信息,这容易给一些不怀好意的人以可乘之机,因为隐藏变量可以通过查看html原码看到。因此,在用隐藏变量来传递信息时,一定要小心,审核你的程序流程,看看是否会带来问题。 CGI - 隐藏变量 隐藏变量 HIDDEN 隐藏变量的值是用户可修改的 程序员可能忽视对隐藏变量的检查 在多个连续页面中传递隐藏变量时,中间页面可能忽略了对隐藏变量的检查 一个隐藏变量B A1.asp - a2.asp - a3.asp A2.asp可能会忘记对其进行检查 CGI – Cookie的使用 很多人喜欢使用Cookie在客户端存储信息。 Cookie的特点 明文保存 用户可控制 原则 尽量不要使用Cookie保存敏感信息 设置Cookie的有效时间 CGI – 拒绝服务攻击 拒绝服务攻击是使应用程序或操作系统停止为合法访问提供服务的一种攻击。 对于CGI程序的拒绝服务来说,通常是指

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档