|
列出文章
|
頁: [1]
|
1
|
支援 / 安裝與設定 / 在PHP的safe_mode下安装plog问题多多
|
於: 七月 09, 2005, 01:54:37 下午
|
小结及提问
小结一下: 我以前一直不敢把safe_mode off,主要是因为有二个怕: 一怕被其它用户用fopen()打开其它用户的文件。这个问题现在可以通过在PHP.INI中设置open_basedir=. 得到解决。 二怕Linux上的用户在PHP程序中通过``执行script脚本。这个问题现在可以通过在PHP.INI中设置disable_functions = shell_exec, system, exec, passthru, show_source得到解决。
提问: 那么我就又不太明白了,如果把safe_mode设为on与设置open_basedir=.和disable_functions=shell_exec, system, exec, passthru, show_source还有什么不同呢,safe_mode还有其它什么安全性吗,我看safe_mode的主要功能就是上面提到的二个啊。
|
|
|
2
|
支援 / 安裝與設定 / 在PHP的safe_mode下安装plog问题多多
|
於: 七月 06, 2005, 08:54:50 下午
|
感谢neoli的回复,但我认为safe_mode与open_basedir还是有很大区别的。 不错,当open_basedir=. 时。确实用fopen()无法打开自己帐号以外的文件了。但在php程序中,``命令还是可以被使用,所以我通过以下程序 <? echo "<pre>\n"; echo `cat /etc/passwd`; echo "</pre>\n"; ?>
还是可以很方便的得到系统中所有用户的帐号,如果改成`cat $_GET[file]`还是可以看到别人帐号中的文件内容的。
不设置safe_mode 的LINUX系统管理员,不知是如何处理这种安全问题的?
|
|
|
3
|
支援 / 安裝與設定 / 在PHP的safe_mode下安装plog问题多多
|
於: 六月 27, 2005, 06:53:48 下午
|
我就是网站的系统管理员啊,如果我开放了safe_mode,则我可以放这么一个小程序上去就能看到目录中的文件名 <? echo "<pre>\n"; echo `ls $dir`; echo "</pre>\n"; ?>
我再放这个程序上去,不是就可以看到其它帐号中的程序源代码了吗? <html> <head><title>显示HTML源代码</title></head> <body>
<?php $fp=fopen("$file","r") or die("打开文件$file 错"); while(!feof($fp)){ $lines[]=fgets($fp,1024);
} echo "共有".count($lines)."行<br><br>"; for($i=0;$i<count($lines);$i++){ $lines[$i]=ereg_replace("<","<",$lines[$i]); $lines[$i]=ereg_replace(">",">",$lines[$i]); $lines[$i]=ereg_replace("\"",""",$lines[$i]); echo $i.". ".$lines[$i]."<br>"; }
fclose($fp); ?> </body> </html>
|
|
|
|
|
|