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

天津正规制作网站公司广州天河区建设网站

天津正规制作网站公司,广州天河区建设网站,瑞金网络推广,网站建设什么前言 php是网络安全学习里必不可少的一环#xff0c;简单理解php的开发环节能更好的帮助我们去学习php以及其他语言的web漏洞原理 正文 在正常的开发中#xff0c;文件下载的功能是必不可少#xff0c;比如我们在论坛看到好看图片好听的歌时#xff0c;将其下载下来时就…前言 php是网络安全学习里必不可少的一环简单理解php的开发环节能更好的帮助我们去学习php以及其他语言的web漏洞原理 正文 在正常的开发中文件下载的功能是必不可少比如我们在论坛看到好看图片好听的歌时将其下载下来时就涉及到文件的下载等等文件功能。但也会出现漏洞或者一些bug。这部分是php开发部分的文件下载部分为啥不写完感觉有点多。 文件下载代码的实现 完整的css代码 /* css样式初始化 */ * {font-family: Poppins, sans-serif;margin: 0;padding: 0;box-sizing: border-box;outline: none;border: none;text-decoration: none;text-transform: capitalize;transition: .2s linear; }html {font-size: 62.5%; } /* header样式初始化*/ .header {position: fixed;top: 0;left: 0;right: 0;z-index: 1000;background: #3F3D56;display: flex;align-items: center;justify-content: space-between; }.header .logo {color: white;padding: 0 1rem; } /* 导航样式 */ .navbar ul{display: flex; }.navbar ul li{font-weight: bold;width: 128px;list-style: none;text-align:center; } .navbar ul li a {width: 128px;line-height: 45px;font-size: 1.7rem;color: white; } .navbar ul li a:hover{color: #009933; } /* 二级菜单样式 */ .navbar ul li ul{position: absolute;display: none;width: 128px;line-height: 45px; }.navbar ul li ul li{background-color: #3F3D56; } /* 悬浮展开二级菜单 */ .navbar ul li ul li a:hover{color: white; } .navbar ul li ul li:hover{background-color: #009933; }.navbar ul li:hover ul{display: block; } /* 网站内容*/ .content{margin-top:50px; }/*让文件下载的文件列表居中显示*/ .download-links {text-align: center; /* 使链接居中 */font-family: LiSu, STLiti, cursive; /* 尝试使用隶书字体如果不可用则退回到通用草书字体 */font-style: italic; /* 设置字体为斜体 */ }.download-links ul {list-style: none;padding: 0;margin: 0;display: inline-block; /* 使 ul 内容居中对齐 */ }.download-links li {margin: 10px; /* 添加一些间距 */ }.download-links a {font-size: 18px; /* 可以根据需要调整大小 */text-decoration: none;color: #000; }.download-links a:hover {text-decoration: underline; }php列出当前目录下的文件及文件夹 ?php // 列出当前目录下的所有文件和目录 $files scandir(.);/*// 只保留文件过滤掉目录 $files array_filter($files, function($file) {return is_file($file); });*/// 打印所有文件名 foreach ($files as $file) {echo $file . br; }运行效果如下 直链下载 这是比较安全的方式就不给参数直接使用链接进行文件的下载即不由用户决定而是服务器决定。 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleHead/titlelink relstylesheet hrefindex.css /head body div classheadera hrefindex.html classlogoh1wushiyiwuzhong/h1/anav classnavbarullia hreffile_index.php文件功能导航/a/lilia hreffile_upload.php文件上传/a/lilia hreffile_downlaod.php文件下载/a/lilia href#文件删除/a/lilia href#文件读取/a/lilia href#文件写入/a/li/ul/nav /divdiv classdownload-linksul?php$files scandir(.);$files array_filter($files, function($file) {return is_file($file);});foreach ($files as $file) {// 创建下载链接echo lia href . htmlspecialchars($file) . download . htmlspecialchars($file) . /a/li;}?/ul /div /body /html运行效果如下 随便下载一个文件进行测试 下载成功 直连下载的好处是当用户想下载文件时只能在服务器允许的下载范围里下载而不能下载其他文件 PS直连下载的方式中文件命令规则最好不要把文件命名的太像比如202101.jpg、202102.jpg等等这种情况攻击者可能会通过枚举遍历的方式下载到一些隐私文件 参数下载 !DOCTYPE html html langen headmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleHead/titlelink relstylesheet hrefindex.css /head body div classheadera hrefindex.html classlogoh1wushiyiwuzhong/h1/anav classnavbarullia hreffile_index.php文件功能导航/a/lilia hreffile_upload.php文件上传/a/lilia hreffile_downlaod.php文件下载/a/lilia href#文件删除/a/lilia href#文件读取/a/lilia href#文件写入/a/li/ul/nav /divdiv classdownload-linksul?php$files scandir(.);//扫描当前目录$files array_filter($files, function($file) {return is_file($file);});foreach ($files as $file) {// 创建下载链接指向 download.php并传递 filename 参数echo lia hreffile_downlaod.php?filename . urlencode($file) . . htmlspecialchars($file) . /a/li;}?/ul /div /body /html?php // 读取 filename 参数 $filename isset($_GET[filename]) ? $_GET[filename] : ;// 白名单机制确保只能下载指定文件夹下的文件 $filePath ./ . $filename; // 安全性检查防止目录遍历攻击 if (file_exists($filePath) is_file($filePath) preg_match(/^.\//, $filePath)) {// 设置 headersheader(Content-Description: File Transfer);header(Content-Type: application/octet-stream);header(Content-Disposition: attachment; filename.basename($filePath).);header(Expires: 0);header(Cache-Control: must-revalidate);header(Pragma: public);header(Content-Length: . filesize($filePath));// 清空输出缓冲区并关闭输出缓冲ob_clean();flush();// 发送文件到浏览器readfile($filePath);exit; }代码细节解释 1、file_exists($filePath) - 这个函数检查指定路径的文件或目录是否存在。如果文件存在则返回 true否则返回 false。 2、is_file($filePath) - 这个函数检查指定路径是否是一个文件。这是一个重要的检查因为你不希望例如目录被当作文件下载。如果 $filePath 是文件则返回 true否则返回 false。 3、preg_match(‘/^.//’, $filePath) - 这个函数执行一个正则表达式匹配来检查 $filePath 是否符合特定的模式。但是这里提供的正则表达式 ‘/^.//’ 似乎是有误的。这个表达式中的 . 是正则表达式的一个特殊字符表示任何单个字符除了换行符而 / 表示正斜杠 /。所以这个表达式实际上会匹配任何以任何单个字符开头紧跟着一个 / 的字符串。 通常我们希望的是正则表达式能够确保文件路径是在一个特定的目录下例如 /^downloads//这样的表达式会匹配所有以 downloads/ 开始的路径。 运行效果如下 随便下载一个文件进行测试此时可以明显的看到文件的下载链接里多了一个filename参数 http://localhost:63342/wushiyiwuzhong.com/file_downlaod.php?filenameindex.php这种时候我们可以控制filename参数去下载我们想下载的东西 比如我这里下载网站的上一级目录中的txt文件 我们通过../去下载test.txt 成功下载网站上一级目录的文本文件 总结 可控参数在文件下载功能是比较危险的
http://www.hkea.cn/news/14478318/

相关文章:

  • 网页设计素材网站网站权重提升
  • 视频当背景图片 网站开发高级软件开发培训
  • 哪里有网站建设加工vs 2008 建立网站
  • 大型网站只做要多少钱照片合成制作app
  • 10大营销理论优化方法
  • 网站建设账户搭建台州网站建设蓝渊
  • microsoft免费网站沈阳男科最好的男科医院
  • 福州专业网站制作设计上海企业展厅设计公司
  • 网站开发合同印花税wordpress ie9
  • 外国人爱做视频网站吗成都网站建设潮州
  • 工作室网站wordpress 工作流程
  • 门户网站制作流程博客织梦网站模版怎么用
  • 企业内部网站建设费用个人网站开发平台有哪些
  • word怎么做网站iis 子网站
  • 沧州有做网站的吗如何网上查个人房产信息
  • 通州顺德网站建设企业自助网站建设
  • 做网站能带来什么问题自建app
  • 网站免费做测算的网站
  • 深圳全国网站制作哪个好微商城小程序免费
  • 软件商店正版下载安装爱站工具seo综合查询
  • 个人网站开发需求分析网站服务器放置地查询
  • 建设银行网站流水账单怎么打随申行是国企嘛?
  • 全国高校校园网站联盟建设红番茄 网站点评
  • 农业做的好的网站嘉兴网站快速排名优化
  • 做网站比较好的公司有哪些建站优化推广
  • 网站内容由什么组成部分组成部分网站全站搜索代码
  • app网站免费简单门户网站开发
  • 购物导购网站开发济宁中小企业网站建设
  • adc网站建设dw可以制作网站吗
  • h5响应式网站建设方案怎么写四川seo整站优化费用