PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术

上传人:E**** 文档编号:89180614 上传时间:2019-05-20 格式:PPT 页数:16 大小:842.50KB
返回 下载 相关 举报
PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术_第1页
第1页 / 共16页
PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术_第2页
第2页 / 共16页
PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术_第3页
第3页 / 共16页
PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术_第4页
第4页 / 共16页
PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术》由会员分享,可在线阅读,更多相关《PHP程序设计案例教程 教学课件 ppt 作者 陈建国 第15讲 第15讲 PHP安全与加密技术(16页珍藏版)》请在金锄头文库上搜索。

1、第15讲 PHP安全与加密技术,教师姓名 教研室名称 2012年01月01日,机械工业出版社,内容要点 CONTENTS,在网络系统中,最容易遭到攻击的就是文件系统,虽然PHP的目录,以及文件安全机制非常完善,但是有关于路径或操作文件的动作,还是可以被利用。本节将介绍一些关于文件系统的安全问题,并提出解决方案。,1. PHP漏洞与防护措施,1) 文件系统,如果代码中关于文件系统的操作不够安全,就会被利用来删除服务器上的文件,下面演示的是一段不安全的代码,如果在脚本中使用了这段代码,很可能被利用来操作服务器上的文件,演示代码如清单所示。 /不安全的代码 ,2) 外部变量产生的安全问题,1. PH

2、P漏洞与防护措施,使用包含文件功能,对于编写代码来说有很多好处,但是如果不正确的使用,也能带来安全方面的问题,下面演示一段代码,用于说明包含文件带来的安全问题,代码如清单所示。 /特殊字符攻击 ,3) 特殊字符攻击,1. PHP漏洞与防护措施,使用数据库的超级用户帐号,可以任意执行数据操作,例如:删除数据,清空表,删除表,删除数据库等。这些操作都是非常危险的,都会直接影响到数据库中存储的数据。 在实际应用中,尽量不要使用超级用户来操作数据库,推荐新建受限用户,来管理对应的数据库。如果使用受限用用户操作数据库,即使非法用户通过代码取得了这个用户的操作权限,也不会产生大的损失。 受限用户的权限,可

3、以根据程序的要求来设置,如果程序只是用来查询数据,那么受限用户的权限只设置为查询权限,就可以满足要求了。,4) 数据库权限与安全,1. PHP漏洞与防护措施,在代码中操作数据库,都是通过SQL语句完成的,通常SQL语句都是在编写代码时,写在了脚本中,以此来看SQL语句不会产生安全问题。但许多关于数据库方面的安全问题,都是由SQL引起的。SQL注入是非法用户最经常使用的侵入手段,在一些需要变量组成的SQL语句中,如果不采取防范措施,很容易被非法用户利用,下面演示一段不安全的代码,代码如清单所示。,5) SQL注入与防范,1. PHP漏洞与防护措施,PHP注入的基本原理 程序员的水平及经验也参差不

4、齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 受影响的系统:对输入的参数不进行检查和过滤的系统 SQL注入过程 正常来讲,我们通过地址接收一些必要的参数如: PHP100.php?id=2 页面中我们会使用 2 写入到SQL语句中 正常情况:Select * From Table where id=2 如果我们对SQL语句熟悉,就知道2 我们可以替换成我们需要的SQL语句 如:and exists (selec

5、t id from admin),1. PHP漏洞与防护措施,5) SQL注入与防范,2、防止注入的几种办法 其实原来就是我们需要过滤一些我们常见的关键字和符合如: Select,insert,update,delete,and,*,等等 例子 function inject_check($sql_str) return eregi(select|insert|update|delete|/*|*|./|./|union|into|load_file |outfile, $sql_str); / 进行过滤 或者是通过系统函数间的过滤特殊符号 Addslashes(需要被过滤的内容),1. PH

6、P漏洞与防护措施,5) SQL注入与防范,PHP语言本身,以及数据库软件,在安全方面的措施已经很全面了,而产生安全问题最多的,就在于代码本身。要想开发健状的代码,就必须解决好代码的安全问题。本节主要介绍,容易产生安全问题的代码,以及开发安全代码要注意的问题。,6) 代码安全防范,1. PHP漏洞与防护措施,1、register_globals = Off 设置为关闭状态 2、SQL语句书写时尽量不要省略小引号和单引号,Select * From Table Where id=2 (不规范),Select * From Table Where id=2 (规范),3、正确的使用 $_POST $

7、_GET $_SESSION 等接受参数,并加以过滤,4、提高数据库命名技巧,对于一些重要的字段可根据程序特点命名,5、对于常用方法加以封装,避免直接暴露SQL语句,1. PHP漏洞与防护措施,6) 代码安全防范,表单变量是指用户使用表单提交的变量,当非法用户掌握了表单的变量列表后,就可以通过伪造表单变量,来使用脚本进行非法操作。 不管是文件系统的安全问题,还是与数据库有关的安全问题,都是因为没有对用户提交的变量进行检查的结束所致。 防范来自外部变量的威胁最好的办法,就是对用户提交的变量,进行类型、长度等方面的检查,以防止非法变量的出现,下面列出用于检查变量类型和长度的参数,,7) 防范外部变

8、量威胁,1. PHP漏洞与防护措施,当PHP代码出错后,开发人员可以通过PHP输出的错误信息,来判断造成错误的原因和文件。但是PHP的错误报告也会被非法用户,用于收集系统漏洞信息。PHP显示错误报告的功能,可以通过配置文件来设置,下面演示其修改过程。 (1)使用记事本打开PHP配置文件。 (2)使用记事本查找功能,查找字符串“display_errors = ”,光标定位于错误报告设置项处,如图所示。,8) 错误信息,1. PHP漏洞与防护措施,使用APACHE架设网络服务时,通过浏览器访问APACHE的文档根目录或其他目录时,APACHE会根据配置文件的设计,首先运行索引文件,一般索引文件名

9、是index.html或index.php,如果索此文件不存在于此目录中,便列出要访问目录中的文件夹与文件的名称,这个功能有时会给用户带来方便,但是对于要非法访问系统的用户来说,就是一个机会。 为了解决这个潜在的安全问题,可以在安装APACHE时,配置SSL插件,但这种方面对于初学者来说,比较难于操作。最简单的办法就是,在准备发布的项目的每一个文件下,存放一个空文件文件,其文件名为index.html,并把index.html加入APACHE的索引文件列表中,当用户再访问发布项目的文件夹时,APACHE会直接访问index.html,而不是列出文件夹和文件。,9) 关于目录安全,1. PHP漏

10、洞与防护措施,数据加密是解决安全问题的最后一道屏障,假设非法用户突破了重重设置,进行了数据库,并成功读取了敏感数据,会造成数据泄密。如果把这些敏感数据进行加密,就可以彻底粉碎非法用户的入侵活动。 PHP中用于数据加密的函数有很多,但是也提供了相应的解密函数,非法用户依然可以通过这些PHP解密函数,还原加密的数据。 /加密与解密函数 /使用base64_encode()函数加密数据 $string = “这是使用base64_encode()函数加密的数据“; $enString = base64_encode($string); echo “加密前字符串:“.$string.“; echo “加密后字符串:“.$enString.“; /使用base64_decode()函数解密字符串 $deString = base64_decode($enString); echo “解密后的字符串:“.$deString.“;,1) 数据加密,2. PHP数据加密技术,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号