首页 >> 读书频道 >> 电脑 >> 教您如何应用PHP开发出安全的应用程序 (3)
 
· 教您如何应用PHP开发出
· 教您如何应用PHP开发出
· 教您如何应用PHP开发出
· 带你走进PHP的世界 P
· Win2000+Apac
· Redhat 9.0下让
· Apache2.0也能跑
· PHP 远程过程调用 —
· php初级入门贴![文本
· 生成随机密码的函数
· 基于PHP的聊天室(一)
· 基于PHP的聊天室(二)
 
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
· 2006高考录取规则
· 首批中国世界名牌产品和2
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

教您如何应用PHP开发出安全的应用程序 (3)


查看有无更新版本

关键字:PHP 2006-8-31

 

二、 安全使用PHP
1、安装安全模块
PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的。在结构上,试图在 PHP 层上解决这个问题是不合理的,但修改 WEB 服务器层和操作系统层显得非常不现实。因此许多人,特别是 ISP,目前使用安全模式。
表-1.安全模式配置指令
 
名称 默认值 类型
safe_mode "0" 布尔型
safe_mode_gid "0" 布尔型
safe_mode_include_dir NULL 字符串
safe_mode_exec_dir "" 字符串
safe_mode_allowed_env_vars PHP_ 字符串
safe_mode_protected_env_vars LD_LIBRARY_PATH 字符串
disable_functions "" 字符串
disable_classes "" 字符串
open_basedir NULL 字符串
 
以下是该配置选项的简要解释。
(1)safe_mode boolean
是否启用 PHP 的安全模式。
(2)safe_mode_gid
默认情况下,安全模式在打开文件时会做 UID 比较检查。如果你想将其放宽到 GID 比较,则打开 safe_mode_gid。是否在文件访问时使用 UID(FALSE)或者 GID(TRUE)来做检查。
(3)safe_mode_include_dir
当从此目录及其子目录(目录必须在 include_path 中或者用完整路径来包含)包含文件时越过 UID/GID 检查。
从 PHP 4.2.0 开始,本指令可以接受和 include_path 指令类似的风格用分号隔开的路径,而不只是一个目录。
(4)safe_mode_exec_dir
如果 PHP 使用了安全模式,system() 和其它执行系统程序的函数将拒绝启动不在此目录中的程序。
(5)safe_mode_allowed_env_vars
设置某些环境变量可能是潜在的安全缺口。本指令包含有一个逗号分隔的前缀列表。在安全模式下,用户只能改变那些名字具有在这里提供的前缀的环境变量。默认情况下,用户只能设置以 PHP_ 开头的环境变量(例如 PHP_FOO = BAR)。
(6)safe_mode_protected_env_vars
本指令包含有一个逗号分隔的环境变量的列表,最终用户不能用 putenv() 来改变这些环境变量。甚至在 safe_mode_allowed_env_vars 中设置了允许修改时也不能改变这些变量。
(7)disable_functions
本指令允许你基于安全原因禁止某些函数。接受逗号分隔的函数名列表作为参数。 disable_functions 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如你不能将其设置在 httpd.conf。
(8)disable_classes
本指令可以使你出于安全的理由禁用某些类。用逗号分隔类名。disable_classes 不受安全模式的影响。 本指令只能设置在 php.ini 中。例如你不能将其设置在 httpd.conf。该指令自 PHP 4.3.2 起可用。
(9)open_basedir
将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本指令不受安全模式打开或者关闭的影响。
2、以安全模式运行PHP
以安全模式运行PHP是使PHP脚本安全使用的好方法,特别是在允许用户使用自己开发的PHP脚本时。使用安全模式会使PHP在运行函数时检查是否存在安全问题。include、readfile、fopen、file、unlink、rmdir等等:被包含的文件或者该文件所在目录的所有者必须是正在运行的脚本的所有者; Exec、System、Passthm等:要执行的程序必须位于特定的目录(默认为/usr/local/php/bin)。编译PHP时可以用- -with-exe-dir选项设定这个值。
Mysql_Connect:这个函数用可选的用户名连接MySQL数据库。在安全模式下,用户名必须是当前被执行的脚本的所有者,或运行httpd的用户名(通常是nobody)。
HTTP Authentication:包含HTTP验证代码脚本所有者的用户ID(数字型)会自动加到验证域。这样可以防止有人通过抓取密码的程序来欺骗同一个服务器上的HTTP验证脚本。

教您如何应用PHP开发出安全的应用程序 (3)

[ 1 ]
教您如何应用PHP开发出安全的应用程序 (3) num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑