第13章 关于安全80937.pptVIP

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

第13章 关于安全 近年来由于黑客问题日益严重,网络系统的安全问题,也得到了广泛的重视。PHP用于网络软件系统的开发,其本身的安全性是比较高的。但是因为解析PHP代码的解析器,可以访问服务器上的文件,这就会引发一些安全问题,从而威胁到系统的数据。 本章将从4个方面,介绍了软件可能存在的安全问题,在了解这些安全方面的知识后,读者可以参考这些内容,来增强软件系统的安全性。 13.1 文件系统 在网络系统中,最容易遭到攻击的就是文件系统,虽然PHP的目录,以及文件安全机制非常完善,但是有关于路径或操作文件的动作,还是可以被利用。本节将介绍一些关于文件系统的安全问题,并提出解决方案。 13.1.1 外部变量产生的安全问题 如果代码中关于文件系统的操作不够安全,就会被利用来删除服务器上的文件,下面演示的是一段不安全的代码,如果在脚本中使用了这段代码,很可能被利用来操作服务器上的文件,演示代码如清单所示。 清单 不安全的代码 ?php //处理表单变量 $dir = $_POST[dirName]; $file = $_POST[fileName]; //删除指定文件夹下的文件 unlink($dir./.$file); echo 删除文件成功! ; ? 13.1.2 特殊字符攻击 使用包含文件功能,对于编写代码来说有很多好处,但是如果不正确的使用,也能带来安全方面的问题,下面演示一段代码,用于说明包含文件带来的安全问题,代码如清单所示。 清单 特殊字符攻击 ?php //处理外部变量 $file = $_GET[fileName]; //检查文件是否存在 if(file_exists(c:/www/home/.$file./.php)) { //如果文件存在,就包含这个文件 include c:/www/home/.$file./.php; } ? 13.2 数据库安全问题 如果不考虑程序代码的安全性,数据库本身也会有安全问题存在,这些安全问题有时会直接影响到数据库中的数据。本节将介绍与数据安全相关的问题,以供读者参考。 13.2.1 数据库权限与安全 使用数据库的超级用户帐号,可以任意执行数据操作,例如:删除数据,清空表,删除表,删除数据库等。这些操作都是非常危险的,都会直接影响到数据库中存储的数据。 在实际应用中,尽量不要使用超级用户来操作数据库,推荐新建受限用户,来管理对应的数据库。如果使用受限用用户操作数据库,即使非法用户通过代码取得了这个用户的操作权限,也不会产生大的损失。 受限用户的权限,可以根据程序的要求来设置,如果程序只是用来查询数据,那么受限用户的权限只设置为查询权限,就可以满足要求了。 13.2.2 SQL注入与防范 在代码中操作数据库,都是通过SQL语句完成的,通常SQL语句都是在编写代码时,写在了脚本中,以此来看SQL语句不会产生安全问题。但许多关于数据库方面的安全问题,都是由SQL引起的。SQL注入是非法用户最经常使用的侵入手段,在一些需要变量组成的SQL语句中,如果不采取防范措施,很容易被非法用户利用,下面演示一段不安全的代码,代码如清单所示。 13.3 代码安全防范 PHP语言本身,以及数据库软件,在安全方面的措施已经很全面了,而产生安全问题最多的,就在于代码本身。要想开发健状的代码,就必须解决好代码的安全问题。本节主要介绍,容易产生安全问题的代码,以及开发安全代码要注意的问题。 13.3.1 防范外部变量威胁 表单变量是指用户使用表单提交的变量,当非法用户掌握了表单的变量列表后,就可以通过伪造表单变量,来使用脚本进行非法操作。 在13.2节中演示的安全问题,都是由外部变量引起的。不管是文件系统的安全问题,还是与数据库有关的安全问题,都是因为没有对用户提交的变量进行检查的结束所致。 防范来自外部变量的威胁最好的办法,就是对用户提交的变量,进行类型、长度等方面的检查,以防止非法变量的出现,下面列出用于检查变量类型和长度的参数, 13.3.2 数据加密 数据加密是解决安全问题的最后一道屏障,假设非法用户突破了重重设置,进行了数据库,并成功读取了敏感数据,会造成数据泄密。如果把这些敏感数据进行加密,就可以彻底粉碎非法用户的入侵活动。 PHP中用于数据加密的函数有很多,但是也提供了相应的解密函数,非法用户依然可以通过这些PHP解密函数,还原加密的数据。 清单 加密与解密函数 //使用base64_encode()函数加密数据 $string = 这是使用base64_encode()函数加密的数据; $enString = base64_encode($string); echo 加密前字符串:.$string.br; echo 加密后字符串:.$enString.br; //使用b

文档评论(0)

精品文档 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档