1
Linux服务器配置与应用
1.10.3.1 7.3.1 PHP介绍
7.3.1 PHP介绍

PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。

PHP脚本程序主要应用于Web服务端开发,命令行和编写桌面应用程序。PHP支持和所有web开发语言之间的WDDX复杂数据交换。关于相互连接,PHP 已经支持了对Java对象的即时连接,并且可以透明地将其用作PHP对象。

PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。

根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码,在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。

由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。

PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。

PHP 遵从大多数服务器系统中关于文件和目录权限的安全机制。这就使管理员可以控制哪些文件在文件系统内是可读的。必须特别注意的是全局的可读文件,并确保每一个有权限的用户对这些文件的读取动作都是安全的。

PHP的加密函数有crypt()、 md5() 和sha1() 这3种,其中crypt() 用于单向加密,所谓的单向加密就是将需要加密的内容进行加密之后,无法将密文转换成为可读的内容,因此单向加密的应用范围较狭窄,一般用于用户名认证和密码输入等情况; 当用户进入系统时,只需要将密文口令输入,经过系统验证与存储的口令一致,即可通过。

md5()和sha1()属于哈希算法,它是不可逆的一种算法,通过截取任意一段的初始信息,将其进行转换,所得到的内容就是哈希值,且长度固定。这样即使信息丢失,对哈希值进行分析也是无意义的,因为它与原来的信息并无直接联系,因此具备较强的加密功能。md5() 使用了MD5散列算法,将一个长度不固定的信息转换为128位的信息摘要。

sha1() 函数使用了SHA-1的散列算法,其原理与md5() 类似。md5() 和sha1() 经常用于验证信息的完整性,即通过计算文件的哈希值来验证文件是否被修改,因此在PHP中还需要两个函数来对哈希值进行计算,md5_file() 和sha1_file(),一旦发现计算出的哈希值与原始值不同,就可以判断文件遭到了修改。这3种函数虽然操作简单,但是都是不可逆的,无法对密文进行解读;但是在更高层次的加密工作中,这些简单的加密函数的加密效果就显得有些捉襟见肘了。

通信接口的签名,请使用非对称算法对签名密钥进行加密,并对密钥设置有效期,定期更换。

表7.1 PHP版本