copy函数的补丁

rui7905 2001-07-15 10:49:43
加精
为了使copy函数支持safemode对目的路径的检查,在copy函数中
加入目的路径检验:
if ( PG(safe_mode) ) {
if( (!php_checkuid((*source)->value.str.val, NULL, 2)) || (!php_checku
id((*target)->value.str.val, NULL, 2)) ) {
RETURN_FALSE;
}


...全文
67 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rui7905 2001-10-12
:(
回复
rui7905 2001-07-29
差不多喽
回复
zm_627 2001-07-26
對啊.這就安全了么?.改天我讓chaing給妳破了.
回复
chaing 2001-07-21
這樣就安全了么?
回复
yrs 2001-07-16
记下了,谢谢。
回复
rui7905 2001-07-15
copy函数仍有漏洞

open_basedir不能限制copy函数的行为,从而可以在nobody(WEBSERVER)权限允许的情况下,任意的复制文件。

在检验文件用户身份之前,检查open_basedir:
if (php_check_open_basedir((*source)->value.str.val) || php_check_open_basedir((*target)->value.str.val)) {
RETURN_FALSE;
}


实际上,在多用户环境中,由于需要在用户之间保持信息的隔离,文件操作函数都必须同时受到“用户身份”和“open_basedir”的双重限制,否则可能引起安全问题。这样的需要补丁的函数还有:

link:用户可以通过硬连接到其他用户的相同身份的文件(例如,上传文件),从而读取该文件的内容。

unlink:删除别的用户的上传文件(要求身份一致,同上)

rmdir:删除其他用户的目录(要求身份一致,同上)。

PHP4目前只进行了UID的检查,所以,对那些同时使用数据库和上传文件的人来说(他们都有归属nobody的文件,其中可能就有数据库的密码),这是一个安全漏洞。

回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2001-07-15 10:49
社区公告
暂无公告