文件下载
//自定义文件直连下载
function filenameurl($name){
$url='http://'.$_SERVER['HTTP_HOST'].'/blog/soft/'.$name;
#header("location:$url");
}
1、直连下载是安全的
访问PHP文件 会执行PHP并不会下载文件,只有访问除中间件解析的文件才会执行下载,否则就是执行脚本。
2、传参下载不安全
//自动以文件传参下载
function filenameget($name){
$filename = $name;
$download_path = "soft/";
if(eregi("..", $filename)) die("抱歉,你不能下载该文件!");
$file = str_replace("..", "", $filename);
if(eregi(".ht.+", $filename)) die("抱歉,你不能下载该文件!");
试想一下 如果把XXXX.zip替换成 xxx.php 是不是直接把PHP文件直接下载下来呢?
文件删除
filedeldir函数 //删除文件夹
filedel //删除文件
属于一键喝茶功能
//自定义文件删除函数
function filedel($name){
@unlink($name);
}
//自定义文件夹删除函数
function filedeldir($dir){
@rmdir($dir);
}
文件读取/写入文件
fread //读
fwrite //写
//文件夹读取
function getfilename(){
$dir=getcwd();
$file=scandir($dir);
foreach ($file as $value){
if($value != '.' && $value != '..') {
$arr[] = $value;
echo $value.'<br>';
//文件读取
function fileread($name){
$f=fopen($name,"r"); //模式为‘r’ 即 read
$code=fread($f,filesize($name));
echo $code;
fclose($f);
}
//文件写入
function filewrite($name,$txt){
$f=fopen($name,"a+");
fwrite($f,$txt);
fclose($f);
}
文件包含
本地包含 远程包含
'包含即执行' 即使包含一个txt文件 也会当做PHP代码执行
例如
远程文件包含的条件:
PHP的配置选项allow_url_include为ON的话,则include/require函数可以加载远程文件,这种漏洞被称为"远程文件包含漏洞(Remote File Inclusion RFI)"。
allow_url_fopen = On 是否允许打开远程文件
allow_url_include = On 是否允许include/require远程文件
<?php
$file = $_GET['file'];
include $file;
?>
需要特别说明的是以下几个函数都可以实现文件包含。
|