当前位置: 首页 > news >正文

小迪安全-24天-文件管理,显示上传,黑白名单,访问控制

上节课回顾,token问题

没有更新token值,造成了复用

加上这段代码就好了,就不会复用了

文件管理-文件上传

upload.html文件,找ai生成就行

uoload.php接受文件上传的信息

这里在写个临时文件存储换个地方

因为上面临时文件存在c盘的目录,换到别的盘要绝对路径,不如就报错

黑名单

如果上传的文件后主在黑名单里面就不让上传

但是这个不安全,例如我上次php3,绕过黑名单了,上传.shtaseess文件,包含png文件,也是成功利用了

白名单

跟黑名单相反一下就行,单安全系数更高

mime类型验证

这个不安全,改一下mime信息就绕过了,不如白名单检测后缀

文件管理-显示

文件显示

这里可以显示了,但是没办法在进一步读取文件夹

加一个超链接,自动把文件夹名字赋值给path

这时候会有任意文件读取的危险,但是php.ini有安全机制,可以防御这种失去

这时候就只能看到www目录,在网上就看不到了

在网上就直接报错看不到了

或者在代码里面过滤../这种关键字

还有设置用户的权限,不给web用户权限看某目录

uoload.php

<?php
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$tmp_name = $_FILES['file']['tmp_name'];
$error = $_FILES['file']['error'];

//echo $name."<br>";
//echo $type."<br>";
//echo $size."<br>";
//echo $tmp_name."<br>";
//echo $error."<br>";

//if(move_uploaded_file($tmp_name, 'D:\phpStudy\PHPTutorial\WWW\upload\img/'.$name)){
//    echo "上传成功";
//}

//黑名单
/*
$black_ext=array('php','php4','php5','phtml');
$fenge=explode('.',$name);//以逗号分隔获取末尾
$exts=end($fenge);//数组需要用end输出
if(in_array($exts,$black_ext)){
    echo '非法文件'.$exts;
}else{
    if(move_uploaded_file($tmp_name, 'D:\phpStudy\PHPTutorial\WWW\upload\img/'.$name)){
        echo "上传成功";
    }
}
*/

//白名单
$allow_ext=array('png','jpg','jpeg','gif');
$fenge=explode('.',$name);//以逗号分隔获取末尾
$exts=end($fenge);//数组需要用end输出
if(in_array($exts,$allow_ext)){
    if(move_uploaded_file($tmp_name, 'D:\phpStudy\PHPTutorial\WWW\upload\img/'.$name)){
        echo "上传成功";
    }
}else{
    echo '非法文件'.$exts;
}

file-manage.php

<?php
$dir=$_GET['path'] ?? './';

function show_file($dir){
    if(@$d=opendir($dir)){//打开目录,返回句柄
        echo $d;
        while(($file=readdir($d))!==false){//readdir读取句柄中的文件和子目录
            if(is_dir($file)){//is_dir检测是否是目录
                echo '文件夹'."<a href='?path=$file'>$file</a>".'<br>';
            }else{
                echo '文件'.$file.'<br>';
            }
        }
    }

}

show_file($dir);

jian

kang

ping

an

相关文章:

  • 【R语言】dplyr包经典函数summarise函数
  • 永洪科技旗下BI产品,成功入选“金融信创优秀解决方案“
  • 模版语法vscode
  • 云计算及其他计算
  • 【LeetCode刷题之路】leetcode155.最小栈
  • Windows 11【1001问】如何下载Windows 11系统镜像
  • 【2025信息安全软考重点考点归纳】实时更新
  • 首发!三维街景数据产品V0.1版发布
  • 网络安全入门|从防护到溯源:HTTP慢速攻击的深度对抗
  • 力扣hot100——二叉树的右视图
  • 基于同轴聚类点云去重的铆钉高度测量
  • [数学] 常用数学公式(逐步更新完善)
  • html中rel、href、src、url的区别
  • Python项目源码33:待办事项列表应用2.0(命令行界面+Json+类)
  • DeepSeek 提示词:高效的提示词设计
  • GIST框架:深度学习助力组织病理学与转录组学的空间整合分析|顶刊精析·25-02-24
  • Oracle Fusion Middleware更改weblogic密码
  • 深度解析SmartGBD助力Android音视频数据接入GB28181平台
  • TCP/IP的分层结构、各层的典型协议,以及与ISO七层模型的差别
  • 【Git版本控制器】第五弹——远程仓库,push,pull,gitignore
  • 山东发布高温橙警:预计19日至21日局地可达40℃
  • 海外市场,押注中国无人驾驶龙头
  • 第十一届世界雷达展开幕,尖端装备、“大国重器”集中亮相
  • 全国游泳冠军赛:孙杨、潘展乐同进400自决赛,今晚将正面对决
  • 官方通报汕头违建豪宅“英之园”将强拆:对有关人员严肃追责问责
  • 刘小涛任江苏省委副书记