Web開發-PHP應用文件操作安全上傳下載任意讀取刪除目錄遍歷文件包含

知識點:
1、安全開發-原生PHP-文件安全操作
2、安全開發-原生PHP-上傳讀取刪除包含等
3、安全開發-原生PHP-代碼審計文件安全

一、演示案例-WEB開發-文件安全-上傳下載讀取

文件上傳

$_FILES:PHP中一個預定義的超全局變量,用于在上傳文件時從客戶端接收文件,并將其保存到服務器上。它是一個包含上傳文件信息的數組,包括文件名、類型、大小、臨時文件名等信息。
$_FILES["表單值"]["name"] 獲取上傳文件原始名稱
$_FILES["表單值"]["type"] 獲取上傳文件MIME類型
$_FILES["表單值"]["size"] 獲取上傳文件字節單位大小
$_FILES["表單值"]["tmp_name"] 獲取上傳的臨時副本文件名
$_FILES["表單值"]["error"] 獲取上傳時發生的錯誤代碼
move_uploaded_file() 將上傳的文件移動到指定位置的函數

文件下載

修改HTTP頭實現文件讀取解析下載:
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . $file . "\"");
header("Content-Length: " . filesize($file));
readfile($file);

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

文件讀取

1、file_get_contents() 讀取文件內容

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2、fopen()、fread() 文件打開讀入

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

二、演示案例-WEB開發-文件安全-刪除遍歷包含

文件刪除

unlink() 文件刪除函數
調用命令刪除:system shell_exec exec等

在這里插入圖片描述

文件顯示(目錄遍歷)

1.打開目錄讀取文件列表
2.遞歸循環讀取文件列表
3.判斷是文件還是文件夾
4.PHP.INI目錄訪問控制

is_dir() 函數用于檢查指定的路徑是否是一個目錄

opendir() 函數用于打開指定的目錄,返回句柄,用來讀取目錄的文件和子目錄

readdir() 函數用于從打開的目錄句柄中讀取目錄中的文件和子目錄

在這里插入圖片描述
在這里插入圖片描述

open_basedir:PHP.INI中的設置用來控制腳本程序訪問目錄

scandir() 函數返回指定目錄中的文件和目錄列表,以數組形式返回

在這里插入圖片描述

ini_set(‘open_basedir’,DIR); 設置配置文件中,只能訪問本目錄

文件包含

在這里插入圖片描述

include

在這里插入圖片描述
在這里插入圖片描述

require

在這里插入圖片描述
在這里插入圖片描述

include_once

在這里插入圖片描述
在這里插入圖片描述

require_once

三、演示案例-WEB開發-文件安全-代碼審計案例

1、Rrzcms-遍歷讀取

https://xz.aliyun.com/t/10932
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

黑盒角度

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

白盒角度

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2、Metinfo-文件下載

https://mp.weixin.qq.com/s/te4RG0yl_truE5oZzna3Eg
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3、Xhcms-文件包含

https://xz.aliyun.com/t/11310
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73207.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自然語言處理:文本聚類

介紹 大家好,博主又來和大家分享自然語言處理領域的知識了。今天給大家分享的內容是自然語言處理中的文本聚類。 文本聚類在自然語言處理領域占據著重要地位,它能將大量無序的文本按照內容的相似性自動劃分成不同的類別,極大地提高了文本處…

JavaScript 運算符詳解

引言 在 JavaScript 編程中,運算符是用于對數據進行操作的特殊符號。通過使用運算符,我們可以實現各種計算、比較和邏輯判斷等功能。JavaScript 中的運算符種類豐富,涵蓋了算術、比較、邏輯、賦值等多個方面。下面將詳細介紹各類運算符及其使…

基于javaweb的SpringBoot個人健康管理系統小程序微信小程序設計與實現(源碼+文檔+部署講解)

技術范圍:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

責任鏈模式的C++實現示例

核心思想 責任鏈模式是一種行為設計模式,允許多個對象都有機會處理請求,從而避免請求的發送者與接收者之間的耦合。請求沿著處理鏈傳遞,直到某個對象處理它為止。 解決的問題 ?解耦請求發送者與處理者:請求的發送者無需知道具…

Java 無 GUI 瀏覽器:HtmlUnit 入門及實戰 [特殊字符]

文章目錄 HtmlUnit 入門功能簡介入門案例更多功能HtmlUnit 實戰需求頁面分析編碼參考? 本文目標: HtmlUnit 框架入門HtmlUnit 框架實戰:實現 HtmlUnit 訪問 Web 頁面,并實現 Web 頁面按鈕點擊,同時獲取到下載的文件。HtmlUnit 入門 ?? 官網:https://htmlunit.sourcefo…

微軟 NativeAOT

微軟Native AOT(Ahead-Of-Time)是.NET平臺中一種新的運行模式,它直接將IL(Intermediate Language,中間語言)代碼編譯為目標平臺的機器碼發布,與JIT(Just-In-Time,即時編譯…

Vue項目搜索引擎優化(SEO)終極指南:從原理到實戰

文章目錄 1. SEO基礎與Vue項目的挑戰1.1 為什么Vue項目需要特殊SEO處理?1.2 搜索引擎爬蟲工作原理 2. 服務端渲染(SSR)解決方案2.1 Nuxt.js框架實戰原理代碼實現流程圖 2.2 自定義SSR實現 3. 靜態站點生成(SSG)技術3.1…

Java 枚舉

一、簡介 Java 枚舉是一種強大的工具,其本質上是一個繼承自 java.lang.Enum 的類,用于定義一組固定的常量,每個枚舉常量都是該枚舉類的一個實例。枚舉不僅提供了類型安全性,還可以像普通類一樣擁有字段、方法和構造函數。枚舉的使…

CentOS7安裝DNS服務器bind

文章目錄 安裝DNS服務設置配置文件自定義域名解析完整配置 需求是公司內網服務器無法連接外網,需要在本地搭建DNS服務,這樣物理機器遷移到內網后,通過域名解析訪問服務 DNS服務器 172.25.14.215 ip域名172.25.14.216mysql.server172.25.14.2…

DFS刷題(25.3.13)

題目1——烤雞 題目描述 題解 這是一個簡單的暴搜題目,由于一共由10種配料,每種配料可以放1到3克,因此只需要用dfs對每種配料放入的質量進行暴力搜索即可,如果放入的配料質量之和等于題目給出的美味程度 n n n,記錄一…

C#中除了Dictionary,List,HashSet,HashTable 還有哪些可以保存列表的數據類型?

在 C# 中,除了 Dictionary、List、HashSet 和 Hashtable 之外,還有許多其他可以保存列表或集合類型的數據結構,具體包括以下幾類: 📌 數組類 1. Array(數組) 固定長度,性能高&…

《Python實戰進階》第21集:數據存儲:Redis 與 MongoDB 的使用場景

第21集:數據存儲:Redis 與 MongoDB 的使用場景 摘要 在現代應用開發中,數據存儲的選擇直接影響系統的性能、擴展性和成本。Redis 和 MongoDB 是兩種極具代表性的數據庫技術,它們分別擅長解決不同場景下的問題。本文將深入探討 Re…

三視圖轉stl導出 空心面片體 networkx shapely triangle numpy-stl

from shapely.geometry import Polygon import triangle from shapely.ops import unary_union from stl import mesh import numpy as np from collections import defaultdict from 三維投影線段尋找 import get_adjusted_clusters,get_clusters,get_intersect_lines import …

大摩閉門會:250312 學習總結報告

如果圖片分辨率不足,可右鍵圖片在新標簽打開圖片或者下載末尾源文件進行查看 本文只是針對視頻做相應學術記錄,進行學習討論使用

【51單片機】程序實驗15.DS18B20溫度傳感器

主要參考學習資料:B站【普中官方】51單片機手把手教學視頻 開發資料下載鏈接:http://www.prechin.cn/gongsixinwen/208.html 單片機套裝:普中STC51單片機開發板A4標準版套餐7 目錄 DS18B20介紹主要特性內部結構控制時序初始化時序寫時序讀時序…

ESP32芯片模組方案,設備物聯網無線通信,WiFi藍牙交互控制應用

在當下,物聯網正以前所未有的速度席卷全球,從繁華都市的智能建筑,到寧靜鄉村的智慧農業,從人們日常使用的可穿戴設備,到工業領域復雜精密的自動化生產線,物聯網的觸角已深入到生活與生產的每一個角落。 而…

Linux第二次練習

1.首先在根下面創建一個名為text的目錄 2.在根目錄下新建一個text目錄,然后在text目錄中新建上圖的一級目錄、二級目錄以及三級目錄 3.顯示/text目錄下文件的樹形拓撲圖 4.將linux樹狀結構圖中列出的所有文件用ll命令列出來

百雞問題-

百雞問題 #include<stdio.h> int main(){int n;scanf("%d",&n);int x,y,z;for(x0;x<100;x){for(y0;y<100;y){for(z0;z<100;z){if((x*15y*9z)<(3*n) && ((xyz)100)){printf("x%d,y%d,z%d\n",x,y,z);}}}}return 0; }

LVDS(Low Voltage Differential Signaling)電平詳解

一、LVDS的定義與核心特性 LVDS&#xff08;低壓差分信號&#xff09;是一種 低功耗、高速、抗干擾 的差分信號傳輸技術&#xff0c;通過一對互補的電壓信號&#xff08;正負端差值&#xff09;傳遞數據。其核心特性包括&#xff1a; 電氣特性 電壓擺幅&#xff1a;差分電壓約…

【OpenFeign 面試專題】

OpenFeign 面試專題 OpenFeign 的核心原理OpenFeign 如何與 Ribbon、Hystrix 集成Ribbon的負載均衡策略如何自定義 OpenFeign 的請求編碼和響應解碼OpenFeign 如何傳遞請求頭&#xff08;Header&#xff09;信息OpenFeign 如何處理超時和重試OpenFeign 支持哪些 HTTP 客戶端實現…