1Next >
wan1201 | 发表于:11-09-30 16:33 [添加收藏] 楼主 [回复] #Top# |
---|---|
![]() ![]() |
PHP勿庸置疑是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险,在这章里,你将学习到使用PHP的安全模式来阻止一些PHP潜在的危险因素。 【 安全模式 】 PHP的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的PHP开放的Web服务器上。当一个Web服务器上运行的PHP打开了安全模式,那么一些函数将被完全的禁止,并且会限制一些可用的功能。 [ 使用安全模式来强制限制 ] 在安全模式下,一些尝试访问文件系统的函数功能将被限制。运行Web服务器用户ID,如果想要操作某个文件,则必须拥有该文件读取或者写入的访问权限,实现这个限制功能对于PHP来说是没有问题的。 在 安全模式开启的时候,尝试读取或者写入一个本地文件的时候,PHP将检查当前访问用户是否是该目标文件的所有者。如果不是所有者,则该操作会被禁止。(写 当安全模式打开的时候,以下函数列表的功能将会受到限制: chdir , move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, 同样的,一些PHP扩展中的函数也将会受到影响。(加载模块:在安全模式下dl函数将被禁止,如果要加载扩展的话,只能修改php.ini中的扩展选项,在PHP启动的时候加载) 在PHP安全模式打开的时候,需要执行操作系统程序的时候,必须是在safe_mode_exec_dir选项指定目录的程序,否则执行将失败。即使允许执行,那么也会自动的传递给escapeshellcmd函数进行过滤。 以下执行命令的函数列表将会受到影响: exec, shell_exec, passthru, system, popen 另外,背部标记操作符(`)也将被关闭。 当运行在安全模式下,虽然不会引起错误,但是 putenv 函数将无效。同样的,其他一些尝试改变PHP环境变量的函数set_time_limit, [ 打开安全模式 ] 打开或者关闭PHP的安全模式是利用php.ini中的safe_mode选项。如果要激活安全模式给当前所有共享Web服务器的用户,只要设置配置选项为:safe_mode [ 隐藏PHP ] 你能够在php.ini里使用 expose_php 选项来防止Web服务器泄露PHP的报告信息。如下:expose_php = OpenSSL/0.9.7c在 expose_php 选项打开以后,PHP的版本信息将不包含在上面的头信息里。当然,用户访问网站的时候同样能够看到 [ 文件系统安全 ] 安全模式限制了脚本所有者只能访问属于自己的文件,但是你可以使用 open_basedir [ 数据库安全 ] 假设你的PHP脚本中包含一个基于表单值来执行的Mysql查询:$sql = “UPDATE mytable SET col1 = ” .
Ta最近还发表过
[其他]
生活故事
(11-10-18)
[分享]
PHP的安全模式
(11-10-11)
[其他]
两岁女儿的童言无忌
(11-10-06)
[分享]
PHP 函数
(11-09-30)
[其他]
孕妇趣事
(11-09-29)
随机阅读
[使用]
求个认证啊 下不了
(16-11-12)
[疑问]
什么时候升级~~~严重影响站长们的计划
(13-04-22)
[模板]
找人修改一下程序!就修改下产品类别!只要能做就给钱
(12-08-27)
[分享]
PHP 5.4即将到来:将内置Web Server
(11-11-16)
[分享]
怎样让关键词排名更稳定
(11-08-23)
|
cwwqsz | 发表于:11-10-01 01:18 沙发 [回复] #Top# |
---|---|
![]() ![]() |
学习了
|
fansxiao | 发表于:11-10-11 07:55 板凳 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() |
学习了
|
1Next >