社区
Framework
帖子详情
PHP的Safe_mode 打开后哪些地方受限.
超级大笨狼
2012-04-23 05:10:06
Safe_mode 打开后哪些地方受限.
...全文
892
6
打赏
收藏
PHP的Safe_mode 打开后哪些地方受限.
Safe_mode 打开后哪些地方受限.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
axiebin
2013-04-27
打赏
举报
回复
引用 5 楼 xuzuning 的回复:
只要你不试图写文件,那么没有什么区别 如果你允许使用程序写文件,那么什么模式都是无意义的
你好,你这里说的“什么模式”指的难道是" w,r..."这些吗?
xuzuning
2012-04-23
打赏
举报
回复
只要你不试图写文件,那么没有什么区别
如果你允许使用程序写文件,那么什么模式都是无意义的
helloDongXiu
2012-04-23
打赏
举报
回复
顶起 1楼和3楼
zhang6236872
2012-04-23
打赏
举报
回复
safe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini: safe_mode = On 或者修改httpd.conf,定义目录:
Options FollowSymLinks php_admin_value safe_mode 1
重启apache后safe_mode就生效了。启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数。
所有操作文件的函数将只能操作与脚本UID相同的文件
虽然safe_mode不是万能的(低版本的PHP可以绕过),但还是强烈建议打开安全模式,在一定程度上能够避免一些未知的攻击。不过启用 safe_mode会有很多限制,可能对应用带来影响,所以还需要调整代码和配置才能和谐。被安全模式限制或屏蔽的函数可以参考PHP手册。
超级大笨狼
2012-04-23
打赏
举报
回复
谢谢!
梦游
2012-04-23
打赏
举报
回复
如果 PHP 打开了save model,system() 和其它程序执行函数将拒绝启动不在此目录中的程序。必须使用 / 作为目录分隔符,包括 Windows 中 safe_mode_allowed_env_varsstring
被安全模式限制或屏蔽的函数
函数名 限制
dbmopen() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
dbase_open() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
filepro() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
filepro_rowcount() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
filepro_retrieve() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
ifx_* sql_safe_mode 限制, (!= safe mode)
ingres_* sql_safe_mode 限制, (!= safe mode)
mysql_* sql_safe_mode 限制, (!= safe mode)
pg_loimport() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
posix_mkfifo() 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
putenv() 遵循 ini 设置的 safe_mode_protected_env_vars 和 safe_mode_allowed_env_vars 选项。请参考 putenv() 函数的有关文档。
move_uploaded_file() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
chdir() 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
dl() 当 PHP 运行在 安全模式 时,不能使用此函数。
backtick operator 当 PHP 运行在 安全模式 时,不能使用此函数。
shell_exec()(在功能上和 backticks 函数相同) 当 PHP 运行在 安全模式 时,不能使用此函数。
exec() 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因,目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
system() 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因,目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
passthru() 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因,目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
popen() 只能在 safe_mode_exec_dir 设置的目录下进行执行操作。基于某些原因,目前不能在可执行对象的路径中使用 ..。escapeshellcmd() 将被作用于此函数的参数上。
fopen() 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
mkdir() 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
rmdir() 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
rename() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
unlink() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
copy() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。 (on source and target)
chgrp() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
chown() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。
chmod() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 另外,不能设置 SUID、SGID 和 sticky bits
touch() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。
symlink() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。 (注意:仅测试 target)
link() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。 (注意:仅测试 target)
apache_request_headers() 在安全模式下,以“authorization”(区分大小写)开头的标头将不会被返回。
header() 在安全模式下,如果设置了 WWW-Authenticate,当前脚本的 uid 将被添加到该标头的 realm 部分。
PHP_AUTH 变量 在安全模式下,变量 PHP_AUTH_USER、PHP_AUTH_PW 和 PHP_AUTH_TYPE 在 $_SERVER 中不可用。但无论如何,您仍然可以使用 REMOTE_USER 来获取用户名称(USER)。(注意:仅 PHP 4.3.0 以后有效)
highlight_file(), show_source() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。 (注意,仅在 4.2.1 版本后有效)
parse_ini_file() 检查被操作的文件或目录是否与被执行的脚本有相同的 UID(所有者)。 检查被操作的目录是否与被执行的脚本有相同的 UID(所有者)。 (注意,仅在 4.2.1 版本后有效)
set_time_limit() 在安全模式下不起作用。
max_execution_time 在安全模式下不起作用。
mail() 在安全模式下,第五个参数被屏蔽。(注意,仅自 PHP 4.2.3 起受影响)
safe
mode
php
,
PHP
的
Safe
_
mode
打开
后
哪些地方
受限
Safe
_
mode
是唯一
PHP
_INI_SYSTEM属性...要启用
Safe
_
mode
,只需修改
php
.ini:
safe
_
mode
= On 或者修改httpd.conf,定义目录:Options FollowSymLinks
php
_admin_value
safe
_
mode
1被安全模式限制或屏蔽的函数函数名 ...
safe
mode
php
打开
,
PHP
的
Safe
_
mode
打开
后
哪些地方
受限
Safe
_
mode
是唯一
PHP
_INI_SYSTEM属性...要启用
Safe
_
mode
,只需修改
php
.ini:
safe
_
mode
= On 或者修改httpd.conf,定义目录:Options FollowSymLinks
php
_admin_value
safe
_
mode
1被安全模式限制或屏蔽的函数函数名 ...
Safe
_
mode
打开
后
哪些地方
受限
必须使用 / 作为目录分隔符,包括 Windows 中
safe
_
mode
_allowed_env_varsstring 被安全模式限制或屏蔽的函数 函数名 限制 dbmopen() 检查被操作的文件或目录是否与被执行的脚本有相
开启
safe
_
mode
之后对哪些
php
系统函数的影响
safe
_
mode
即为
PHP
的安全模式,在
php
.ini中设置
safe
_
mode
= On重启
PHP
便可开启安全模式。 当安全模式开启后,
PHP
相应的一些系统函数,文件操作函数等将会
受限
。例如: ckdir, move_uploaded_file, chgrp, parse...
开启
php
.ini中的
safe
_
mode
后会影响
php
的哪些系统函数(6个以上)?
safe
_
mode
,
php
安全模式,它提供一个基本安全的共享环境,在一个有多个用户账户存在的
php
开发的web服务器上。当安全模式
打开
的时候,一些函数将被完全的禁止,而另一些函数的功能将会受到限制; 如:chdir,move_...
Framework
4,251
社区成员
4,524
社区内容
发帖
与我相关
我的任务
Framework
国内外优秀PHP框架讨论学习
复制链接
扫一扫
分享
社区描述
国内外优秀PHP框架讨论学习
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章