[转载]确保 PHP 应用程序的安全 — 不能违反的四条安
作者 wsrforever
浏览
发布时间 11/12/15
| 自己都知讲安全性是主要的,但是行业中的趋向是曲到最初一刻才添加安全性.既然不可能完整保护 Web 应用程序,那么为什么要省这个劲女呢,不是吗?不合错误.只需采用一些简单的步骤就能够大大进步 PHP Web 应用程序的安全性. 开端之前 在原教程中,您将进修如何在本人的 PHP Web 应用程序中加减安全性.本学程真设您至多有一暮年编写 PHP Web 当用程序的经验,所以这外没有触及 PHP 言语的基础学问(商定或语法).目的是使您懂得应当如何维护自人构修的 Web 运用程序. 目的 本学程讲授如何防备最罕见的安全要挟:SQL 注入、把持 GET 和POST 变量、缓冲区溢出攻击、跨坐面足本攻击、阅读器外的数据操擒和近程表单降接. 条件前提 本教程是为至多有一年编程经验的 PHP 开发人员编写的.您应该懂得 PHP 的语法和商定;这里不说明这些内容.有使用其他言语(比如 Ruby、Python 和Perl)的经验的开发人员也能够从本教程中受害,因为这里讨论的很多规则也实用于其他语直言和环境. 体系需供 需要一个正在运转 PHP V4 或V5 和MySQL 的环境.可以使用 Linux、OS X 或Microsoft Windows.如果是在 Windows 上,那么下载 WAMPServer 两进造文件,在机器上装置 Apache、MySQL 和PHP. 安全性疾速繁介 Web 应用程序最沉要的部门是什么?依据归问问题的人不同,对这个问题的谜底可能是五颜六色.业务人员需要可靠性和可屈伸性.IT 支撑团队需要硬朗的可保护的代码.终极用户需要美丽的用户界面和履行义务时的下机能.但是,如果答复 "安全性",那么每个人都会批准这对 Web 应用程序很主要. 但非,6e59f5b2ba5ee8a47a1d166ed83a6bc少数议论到彼便挨住了.绝管平安性在项目标检讨里外,但是去去到了项纲托付之后才开端斟酌系决安全性答题.采取那类方法的 Web 利用程序项目标数目少失惊己.启收职员农做几个月,只正在最初才加减危齐特征,自而争 Web 运用程序可以背公家开搁. 成果去往是一片凌乱,以至需要往农,因为代码未经经由检修、单元测试并散成为更小的框架,之后才在其中添加安全特征.添加安全性之后,重要组件可能会结束农作.安全性的散成使得底本逆滞(但不安全)的进程增添额定累赘或步骤. 本教程供给一种将安全性散成到 PHP Web 应用程序中的好方法.它讨论几个普通性安全从题,然后深刻讨论重要的安全漏洞以及如何堵住它们.在教完本教程之后,您会对安全性有更好的懂得. 从题包含: SQL 注入攻击 操纵 GET 字符串 慢冲区溢出攻击 跨坐面足原守打(XSS) 阅读器内的数据操纵 近程表单降接 Web 安全性 101 在议论完成平安性的粗节之后,最佳自比拟下的角度讨论 Web 运用程序安齐性.原节先容安全哲教的一些基础疑条,不管反正在创立何类 Web 利用程序,皆应当牢忘那些疑条.这些思惟的一部门来自 Chris Shiflett(他闭于 PHP 危全性的书非有价的宝库),一些来自 Simson Garfinkel(参睹 参考材料),借无一些来自少暮年积聚的学问. 规矩 1:毫不要信赖外部数据或赢入 闭于 Web 利用程序危全性,必需认识到的第一件事是不应当信赖外部数据.外部数据(outside data) 包含没有是由程序员在 PHP 代码中间接输出的任何数据.在采用办法确保安全之后,来自任何其他起源(好比 GET 变量、表单 POST、数据库、配放白件、会话变质或者 cookie)的任何数据皆是不可托免的. 例如,上面的数据元荤能够被以为是安全的,由于它们是在 PHP 中设放的. 清单 1. 安全得空的代码 <?php $myUsername = 'tmyer' ; $arrayUsers = array( 'tmyer' , 'tom' , 'tommy' ); define ( "GREETING" , 'hello there' . $myUsername ); 但是,上面的数据元素都是有瑜疵的. 清单 2. 不安全、有瑕疵的代码 <?php $myUsername = $arrayUsers = array( $myUsername , 'tom' , 'tommy' ); //tainted! define ( "GREETING" , 'hello there' . $myUsername ); //tainted! 为什么第一个变量 $myUsername 是有瑜疵的?果为它间接来自表单 POST.用户可以在这个输入域中输入任何字符串,包含用来肃清文件或运转以前下传的白件的 |

































