copy函数的补丁

soniclee 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;
}


...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2001-10-12
  • 打赏
  • 举报
回复
:(
「已注销」 2001-07-29
  • 打赏
  • 举报
回复
差不多喽
zm_627 2001-07-26
  • 打赏
  • 举报
回复
對啊.這就安全了么?.改天我讓chaing給妳破了.
chaing 2001-07-21
  • 打赏
  • 举报
回复
這樣就安全了么?
yrs 2001-07-16
  • 打赏
  • 举报
回复
记下了,谢谢。
「已注销」 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的文件,其中可能就有数据库的密码),这是一个安全漏洞。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧