或者我再简单些说?:
http://jefflyn.vicp.net/file.php?delfile=photo.jpg (这样就删除了photo.jpg文件)
http://jefflyn.vicp.net/file.php?delfold=photo (这样就删除了photo文件夹)
http://jefflyn.vicp.net/file.php?afile=photo.jpg?bfile=me.jpg (这样就改了photo.jpg文件名字)
http://jefflyn.vicp.net/file.php?afold=photo?bfile=bakup (这样就改了photo文件夹名字)
现在请求的就是这个file.php的页面代码.
http://jefflyn.vicp.net/file.php?delfile=photo.jpg (这样就删除了photo.jpg文件)
http://jefflyn.vicp.net/file.php?delfold=photo (这样就删除了photo文件夹)
http://jefflyn.vicp.net/file.php?afile=photo.jpg?bfile=me.jpg (这样就改了photo.jpg文件名字)
http://jefflyn.vicp.net/file.php?afold=photo?bfile=bakup (这样就改了photo文件夹名字)
现在请求的就是这个file.php的页面代码.
$delfile = @$_GET['delfile'];
$delfold= @$_GET['delfold'];
$afile= @$_GET['afile'];
$bfile= @$_GET['bfile'];if( isset( $delfile ) && !empty( $delfile ) )
{
if( file_exists( $delfile ) )
{
unlink( $delfile );
echo "success";
}
else
{
echo "false";
}
}
else if( isset( $delfold ) && !empty( $delfold ) )
{
if( is_dir( $delfold ) )
{
rmdir( $delfold );
echo "success";
}
else
{
echo "false";
}
}
else if( isset( $afile ) && !empty( $afile ) && isset( $bfile ) && !empty( $bfile ) )
{
if( file_exists( $afile ) || is_dir( $afile ) )
{
rename( $afile, $bfile );
echo "success";
}
else
{
echo "false";
}
}
{
if( file_exists( $delfile ) )
{
if( unlink( $delfile ) ) //加入个判定,下同
{
echo "success";
}
else
{
echo "false";
}
}
else
{
echo "false";
}
}
else if( isset( $delfold ) && !empty( $delfold ) )
{
if( is_dir( $delfold ) )
{
rmdir( $delfold );
echo "success";
}
else
{
echo "false";
}
}
else if( isset( $afile ) && !empty( $afile ) && isset( $bfile ) && !empty( $bfile ) )
{
if( file_exists( $afile ) || is_dir( $afile ) )
{
rename( $afile, $bfile );
echo "success";
}
else
{
echo "false";
}
}
原理差不多的
ulink,rename...函数
注意过滤路径,直接使用非常危险
e.g. ../../../windows/system32/ ?????路径改成以下的方式会比较直观,最好用post
http://jefflyn.vicp.net/file.php?action=addfile&name=photo.jpg
http://jefflyn.vicp.net/file.php?action=delfold&name=photoaction = {addfile,addfold,delfile,delfolder} 也可以用linux 指令相同
name = photo.jpgrename时
name = photo
newname = backup
这样就好啦,呵呵,记得在传值过程中多对变量和字符串做验证。