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

这篇具有很好参考价值的文章主要介绍了2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


知识点

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

演示案例

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端


文件上传类:

form表单上传文件

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

$_FILES['']['']

action --->提交给谁处理

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

move函数移到文件

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

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

——ueditor 实现编辑器的加载

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

上传文件的方法:

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

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

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

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


文件下载

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

http://ww/wdwadad/kk.zip

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

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

咱 soft 目录 ——下有文件

--php数组取值

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

<h1>文件列表</h1>
<?php getfilename(); ?>
​
<h1>直连下载</h1>
<form action="" method="post">
    <input type="text" name="filename">
    <input type="submit" value="下载">
</form>
<?php @$name=$_POST['filename'];filenameurl($name);?>
//自定义文件直连下载
function filenameurl($name){
    $url='http://'.$_SERVER['HTTP_HOST'].'/blog/soft/'.$name;
    #header("location:$url");
}
传参下载
<?php
 
$filename = $_GET['filename'];
 
// 修改这一行设置你的文件下载目录
$download_path = "ficheros/";
 
// •不能下载上一层目录的文件
if(eregi("\.\.", $filename)) die("抱歉,你不能下载该文件!");
$file = str_replace("..", "", $filename);
 
// 包含 .ht 的文件不能下载
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);
 
?>
//自动义 文件传参下载
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代码:

<h1>文件删除</h1>
<?php getfilename(); ?>
<form action="" method="post">
    <input type="text" name="filename">
    <input type="submit" value="删除">
</form>
<?php @$name=$_POST['filename'];filedel($name);?>
<h1>文件夹删除</h1>
<?php getfilename()?>
<form action="" method="post">
    <input type="text" name="filedir">
    <input type="submit" value="删除">
</form>
<?php
//自定义文件文件夹读取函数
function getfilename(){
    $dir=getcwd();
    $file=scandir($dir);
    foreach ($file as $value){
        if($value != '.' && $value != '..') {
            $arr[] = $value;
            echo $value.'<br>';
        }
    }
}
//自定义文件删除函数
function filedel($name){
    @unlink($name);
}
//自定义文件夹删除函数
function filedeldir($dir){
    @rmdir($dir);
}
?>


文件读取

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端

<h1>读取操作</h1>
<form action="" method="post">
    <input type="text" name="r">
    <input type="submit" value="读取">
</form>
<?php @$name=$_POST['r'];fileread($name);?>
//自定义文件文件夹读取函数
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");
    $code=fread($f,filesize($name));
    echo $code;
    fclose($f);
​
}


文件写入

<h1>写入操作</h1>
<form action="" method="post">
    文件:<input type="text" name="w">
    内容:<input type="text" name="txt">
    <input type="submit" value="写入">
</form>
<?php @$name=$_POST['w'];@$txt=$_POST['txt'];filewrite($name,$txt);?>
//自定义文件写入函数
function filewrite($name,$txt){
    $f=fopen($name,"a+");
    fwrite($f,$txt);
    fclose($f);
}


文件包含-任意文件包含

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

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

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

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

————Include

2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写,php开发基础,php,后端,开发语言,编辑器,前端


总结:

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

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

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

扫描,指纹识别


web漏洞核心:

1-可控变量

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

什么函数决定什么漏洞,可控变量是决定有没有漏洞的原因。文章来源地址https://www.toymoban.com/news/detail-810839.html

到了这里,关于2.php开发-个人博客项目&文件操作类&编辑器&上传下载删除读写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小迪安全 第15天:php开发-个人博客项目&登录验证&cookie&session&验证码安全

    1.后台验证-登录用户逻辑安全-怎么去判定用户登陆成功 2.后台验证-COOKIESESSION 3.后台验证-验证码·万能密码等 思路: 1.发送登录请求 账号 密码 2.接收账号密码 3.判断账号密码的准确性 正确 成功登陆-跳转成功页面 错误 失败登录-重新登陆 后台管理系统有多个文件页面,为了

    2024年04月15日
    浏览(74)
  • 基于Java+MySQL+Tomcat+Servlet+Maven+JQuery+jackson+开源Markdown编辑器实现前后端分离个人博客系统

    目录 项目简介 模块实现 设计实现数据库相关代码 博客列表页 博客详情页 注册页 登录页 检测登录状态 显示用户信息 退出登录 发布博客 删除博客 统计博客数量 效果展示 部分代码展示 小结:     项目中使用了Java ,MySQL ,Tomcat ,Servlet ,Maven ,JQuery ,jackson,开源MarkDo

    2024年02月02日
    浏览(49)
  • 小奔用MD编辑器写博客的相应操作

    目录末尾 之前的博客格式不太完美,所以我学习了一下MD编译器相关操作,并把常用的操作总结在这篇博客里面,希望大家可以学习一下,来美观自己的博客,不要吝啬手中的赞哦,嘿嘿 :sparkles:==提示:== ==(X表示空格)== 一些符号的按键: 🌟的使用 跳转到目录末尾 一般很

    2023年04月10日
    浏览(52)
  • 小迪安全 第14天:php开发-个人博客项目&输入输出类&留言板&访问IP&UA头来源

    1.PHP-全局变量$_SERVER 2.MYSQL-插入语法INSERT 3.输入输出-XSS反射存储 4.安全问题-XSS跨站CSRF等 导入sql文件:navicat导入sql数据库文件的简单操作步骤_sql文件怎么导入navicat-CSDN博客①搜索框: ② php代码: ③结果  ④总结 在输入输出过程中有哪些安全问题:1.sql注入 2. XSS (在搜索框

    2024年04月26日
    浏览(47)
  • AJAX + PHP 编辑器内容自动备份草稿保存到本地 (适用ueditor百度编辑器或其它) 内容变化后自动触发备份txt文件

    百度自带的自动备份功能enableAutoSave存在问题, 比如第一个文章他自动备份了.等发表第二个文章时,结果把第一个文章的内容自动填充进去了.关键你还不知情!出现过多次这种情况了. 一, 百度原版的 ,具体使用方法,看这里个文章 Ueditor百度编辑器内容自动保存到本地防数据丢失

    2024年02月10日
    浏览(57)
  • 从golang编辑器对项目进行git操作

    1.先将项目clone到本地中: 首先选定将项目放在本地的位置,作者将项目选定放在本地的D:githubProject,在该文件夹中打开Git Bash Here,在命令行中输入: 2.在golang中查看项目的分支情况: 在上图中可以看到我们的项目中有4个远程分支,一个本地分支。我们需要在本地分支在开

    2024年02月16日
    浏览(40)
  • ubuntu:vi 编辑器修改文件的基本操作指令

    Vi 编辑器是一个强大的命令行文本编辑器,它有着丰富的功能,但也可能对新用户来说有一些陡峭的学习曲线。下面是一些 Vi 编辑器中的基本操作指令: 1.打开文件 打开 Vi 并打开文件的命令是: 其中 filename 是你要编辑的文件名。 2.保存文件 在普通模式下按 Shift + :(冒号键

    2024年02月04日
    浏览(47)
  • 基于QT4的GPX文件编辑器开发

    GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。 在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。

    2024年02月12日
    浏览(48)
  • 【新项目开发】vue3+ts+elementPlus+ffmpegjs开发纯web端的视频编辑器

    当在项目中使用新技术时,我们应该首先进行调研,了解其特点和使用方法。在实现功能时,我们可以采用最简单的方式,而不必过于关注项目的设计和结构。一旦掌握了新技术,我们可以根据其API属性进行代码设计,以便更好地开发。以开发一个纯web端的视频编辑处理器为

    2024年02月15日
    浏览(55)
  • 【vim进阶】vim编辑器的多文件操作(如何打开多个文件,如何进行文件间的切换,如何关闭其中的某一个文件)

    现在有多个文件 file1 ,file2 , … ,filen. 现在举例打开两个文件 file1,file2 该方式打开文件,显示屏默认显示第一个文件也就是 file1。 在命令模式下使用edit指令 打开一个文件可以通过: edit filename(或者简写为 e ) 。这里的文件名可以采用绝对路径或者是相对路径。 例如我们想打

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包