網(wǎng)站模板:web上存漏洞及原理分析、防范方法(安全文件上存方法)_PHP教程
推薦:網(wǎng)站模板:web上存漏洞及原理分析、防范方法網(wǎng)站提供上存功能,是很多站點(diǎn)經(jīng)常會有功能,商城,論壇還有常見一些網(wǎng)盤站點(diǎn)。常見互聯(lián)網(wǎng)上面,我們也是經(jīng)常聽說,某某站點(diǎn)出現(xiàn)上存漏洞,某某開源項(xiàng)目有 上存漏洞。 從互聯(lián)網(wǎng)開始出現(xiàn)動態(tài)程序,上存漏洞像幽靈一樣,頻繁的出現(xiàn)在各種系統(tǒng)中。為什么,一個上存漏洞會
這類漏洞,主要是可以讀取用戶傳入路徑名稱,采用不正確的過濾方法,導(dǎo)致惡意用戶,將文件上存到非預(yù)期的地方,帶來安全隱患。
其實(shí),我們抓住幾個地方即可,我們先來分析下,既然用戶要上存文件,而且文件將是多種多樣格式;可能有的文件內(nèi)容與用戶傳入格式不一致,有的文件內(nèi)容還夾雜木馬代碼。 那么,我們讓用戶上存文件,跟站點(diǎn)文件做一個分別授權(quán),做隔離。
讓保存上存目錄獨(dú)立開來,目錄權(quán)限只讀不能執(zhí)行
這一步從系統(tǒng)設(shè)計(jì)加以授權(quán),無論你上次什么文件,都不可能執(zhí)行到。就算我不做任何檢測,你的文件都上存到這里了,也不會對我系統(tǒng)構(gòu)成安全。(如果有用戶上存一些反動言語的圖片,那另外需要處理的)
不直接使用服務(wù)器傳入值,所有都要進(jìn)行檢測
這類跟我們做一切輸入都是有害原則一樣,對于客戶端傳入的:type, name ,都要進(jìn)行判斷,不直接使用。對于要生成到某個目錄,某個文件名。
文件名最好方法是:自己寫死目錄(不要讀取傳入目錄),文件名,最好自己隨機(jī)生成,不讀取用戶文件名。文件擴(kuò)展名,可以取最右邊”.”后面字符。
以上2個方法,剛好從2個方面對上存做了整體約束。
方法2 : 保存上存文件名,按照自己指定目錄寫入,并且文件名自己生成的。
方法1:只要保證文件寫對了位置,然后從配置上,對寫入目錄進(jìn)行權(quán)限控制,這個是治本。可以做到,你無論上存什么文件,都讓你沒有權(quán)限跳出去可以運(yùn)行。
以 上2個方法,一起使用,可以保證文件正確存到地方,然后,權(quán)限可以控制。 這里順便說明下, 判斷用戶上存文件是否滿足要求類型,就直接檢查文件擴(kuò)展名,只要滿足擴(kuò)展名就讓上存。 反正,做了執(zhí)行權(quán)限限制,你不按要求上存內(nèi)容,也無妨。 反正,不能執(zhí)行,也不會有多大危害性的。
正確步驟:
1.讀取文件名,驗(yàn)證擴(kuò)展名是不是在范圍內(nèi)
2.自己定義生成的文件名,目錄,擴(kuò)展名可以來自文件名擴(kuò)展名。 其它值,都自己配置,不讀取上存中內(nèi)容
3.將文件 移到新目錄(這個目錄權(quán)限設(shè)置只讀)
好了,以上是一般操作方法,希望對大家有幫助,也歡迎朋友們交流!也希望提供更好的方法!接下來,我會在web 開發(fā)中,常見一些方法功能安全設(shè)計(jì)方面繼續(xù)寫一些我的心得,看法!
分享:php中輸出變量加大括號{}作用php輸出變量加大括號,這是什么寫法?看下面一段代碼: 可以看出php輸出變量加大括號同使用.運(yùn)算符輸出變量字符串效果是一樣,總結(jié)出下面3點(diǎn)以幫助理解php輸出變量加大括號{}的作用: 1. 表示{}里面的是一個變量 ,執(zhí)行時按照變量來處理; 2. 在字符串中引用變量使用的特殊
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時間
- PHP中獎概率的抽獎算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- PHP5 OOP編程中的代理與異常
- PHP和MYSQL制作動態(tài)網(wǎng)站開發(fā)經(jīng)驗(yàn)之談
- PHP教程之如何實(shí)現(xiàn)網(wǎng)站的無限分類
- 解析php5配置使用pdo
- PHP調(diào)用MsSQL Server 2012存儲過程獲取多結(jié)果集(包含output參數(shù))的詳解
- PHP.MVC的模板標(biāo)簽系統(tǒng)
- Apache中RewriteCond規(guī)則參數(shù)的詳細(xì)介紹
- php環(huán)境搭建:PHPnow綠色PHP環(huán)境包
- 解析PHP初學(xué)者14個典型疑難問題
- 如何徹底杜絕PHP的session cookie錯誤
- 相關(guān)鏈接:
- 教程說明:
PHP教程-網(wǎng)站模板:web上存漏洞及原理分析、防范方法(安全文件上存方法)。