2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写


知识点

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第1张图片

演示案例

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第2张图片


文件上传类:

form表单上传文件

--文件上传,--php接收,处理

$_FILES['']['']

action --->提交给谁处理

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第3张图片

move函数移到文件

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第4张图片

---文件上传漏洞啊!!!

——ueditor 实现编辑器的加载

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第5张图片

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第6张图片

上传文件的方法:

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第7张图片2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第8张图片

用了编辑器,就要用编辑器去验证了(编辑器没漏洞,那就没漏洞——他有问题就有问题,他没问题就没问题)

框架--人家封装好的代码(有没有漏洞不是你说了算)

---看网站用了什么,有没有漏洞。


文件下载

--只能下载支持下载协议的,zip,exe,

http://ww/wdwadad/kk.zip

http://dawdaf/fawf/down.php?filename=kkk.zip

直连下载:直接访问地址去下载

咱 soft 目录 ——下有文件

--php数组取值

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第9张图片

文件列表

直连下载

       
//自定义文件直连下载
function filenameurl($name){
    $url='http://'.$_SERVER['HTTP_HOST'].'/blog/soft/'.$name;
    #header("location:$url");
}

传参下载

//自动义 文件传参下载
function filenameget($name){
    $filename = $name;
    $download_path = "soft/";
    if(eregi("\.\.", $filename)) die("抱歉,你不能下载该文件!");
    $file = str_replace("..", "", $filename);
    if(eregi("\.ht.+", $filename)) die("抱歉,你不能下载该文件!");
​
// •创建文件下载路径
    $file = "$download_path$file";
​
// •判断文件是否存在
    if(!file_exists($file)) die("抱歉,文件不存在!");
​
//  文件类型,作为头部发送给浏览器
    $type = filetype($file);
​
// 获取时间和日期
    $today = date("F j, Y, g:i a");
    $time = time();
​
// •发送文件头部
    
    header("Content-type: $type");
    header("Content-Disposition: attachment;filename=$filename");
    header("Content-Transfer-Encoding: binary");
    header('Pragma: no-cache');
    header('Expires: 0');
    
// 发送文件内容
    set_time_limit(0);
    readfile($file);
}

——直连地址,传参地址——

必须是传参地址才能操作。

直连地址很稳巴巴(写死了)。


文件删除

文件/文件夹

del

——html代码:

文件删除

       

文件夹删除

       
';
        }
    }
}
//自定义文件删除函数
function filedel($name){
    @unlink($name);
}
//自定义文件夹删除函数
function filedeldir($dir){
    @rmdir($dir);
}
?>


文件读取

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第10张图片

读取操作

       

//自定义文件文件夹读取函数
function getfilename(){
    $dir=getcwd();
    $file=scandir($dir);
    foreach ($file as $value){
        if($value != '.' && $value != '..') {
            $arr[] = $value;
            echo $value.'
';       }   } } ​ //自定义文件读取函数 function fileread($name){    $f=fopen($name,"r");    $code=fread($f,filesize($name));    echo $code;    fclose($f); ​ }


文件写入

写入操作

  文件:   内容:    

//自定义文件写入函数
function filewrite($name,$txt){
    $f=fopen($name,"a+");
    fwrite($f,$txt);
    fclose($f);
}


文件包含-任意文件包含

1-本地文件包含(包含本地服务器的文件)

2-远程文件包含(包含人家的)

包含代表执行,脚本执行。

包含!——————站在开发者角度,帮我省去一些代码。(数据库连接等等)

————Include

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写_第11张图片


总结:

以上每个功能都有自己的函数方法,

直连地址没有变量,不能控制,(写死了)

变量要可控,(不然只能读写死的那个)

扫描,指纹识别


web漏洞核心:

1-可控变量

2-特定函数——函数的多样化(同一个功能的函数有很多呀)

什么函数决定什么漏洞,可控变量是决定有没有漏洞的原因。

你可能感兴趣的:(php开发基础,php,后端,开发语言,编辑器,前端)