網(wǎng)站模板:web上存漏洞及原理分析、防范方法_PHP教程
推薦:php中輸出變量加大括號(hào){}作用php輸出變量加大括號(hào),這是什么寫法?看下面一段代碼: 可以看出php輸出變量加大括號(hào)同使用.運(yùn)算符輸出變量字符串效果是一樣,總結(jié)出下面3點(diǎn)以幫助理解php輸出變量加大括號(hào){}的作用: 1. 表示{}里面的是一個(gè)變量 ,執(zhí)行時(shí)按照變量來(lái)處理; 2. 在字符串中引用變量使用的特殊
網(wǎng)站提供上存功能,是很多站點(diǎn)經(jīng)常會(huì)有功能,商城,論壇還有常見一些網(wǎng)盤站點(diǎn)。常見互聯(lián)網(wǎng)上面,我們也是經(jīng)常聽說(shuō),某某站點(diǎn)出現(xiàn)上存漏洞,某某開源項(xiàng)目有 上存漏洞。 從互聯(lián)網(wǎng)開始出現(xiàn)動(dòng)態(tài)程序,上存漏洞像幽靈一樣,頻繁的出現(xiàn)在各種系統(tǒng)中。為什么,一個(gè)上存漏洞會(huì)這么頻繁出現(xiàn)呢。而且,有些系統(tǒng)反復(fù)修補(bǔ),多次還沒有修 補(bǔ)成功!其實(shí)主要問(wèn)題,還是出現(xiàn)在上存原理上面。我們先看看,上存過(guò)程。
網(wǎng)站上存過(guò)程分析
<?php
header("Content-type: text/html; charset=utf-8");
if($_FILES)
{
echo '< var_dump($_FILES);
echo '</pre>';
}
?>
<form action="" enctype="multipart/form-data" method="POST">
<input type="file" name="txt" size="50">
<input name="Submit" type="submit" value="提交" >
</form>
以上是個(gè)簡(jiǎn)單測(cè)試?yán)樱覀兛纯?br />
我們來(lái)分析下:
name來(lái)自 上存時(shí)候選擇文件名稱
type 是文件類型, 這個(gè)類型那里來(lái)的呢?呵呵,這里非常關(guān)鍵的。 很多時(shí)候,很多同人會(huì)認(rèn)為,這個(gè)是服務(wù)器自動(dòng)判斷生成的。 如果是這樣想,覺得也有可能。 php 封裝了上存,它自帶類庫(kù)好像可以的。 但是,反過(guò)來(lái)想想,你隨便選擇個(gè)什么格式文件,都會(huì)有格式類型。這樣一想,我們推斷這個(gè)值,可能也來(lái)自用戶輸入的。 我們來(lái)抓包看看我們類型。
type值 也來(lái)自,用戶輸入值了。
size來(lái)自程序計(jì)算上存文件大小,這個(gè)是自動(dòng)計(jì)算的。 相比我們都清楚的。
你說(shuō)這么多有啥樣呢?
想 必有朋友開始問(wèn)了,我上面分析上存文件格式 ,跟開發(fā)出現(xiàn)漏洞有什么關(guān)聯(lián)呢。 其實(shí),我們想想,上面說(shuō)的,一個(gè)文件名稱name屬性,以及文件類型type屬性。 在我們上存文件,后端處理時(shí)候,會(huì)經(jīng)常用到的。 作為開發(fā)者,在使用這2個(gè)變量,一定要繼續(xù)執(zhí)行“一切輸入代碼是有害的”原則。你在使用時(shí)候,要把它當(dāng)作,跟其它get,post 獲取變量一樣處理。 要檢測(cè),過(guò)濾一切輸入變量。
我們經(jīng)常做功能是,限定用戶輸入必須是某種格式文件,然后保存為該格式。分析到這里,下面有很多需要繼續(xù)分析地方,今天先提出大綱。接下來(lái)會(huì)分析這樣常見3類上存漏洞。
1.使用用戶文件名,生成文件,特殊字符過(guò)濾不嚴(yán)格,導(dǎo)致文件生成出現(xiàn)漏洞
2.移動(dòng)文件目錄時(shí)候,由于采用用戶傳入的文件名拼接,生成到錯(cuò)誤目錄
3.相信用戶輸入type 類型,直接將用戶文件名保存為文件
分享:模板無(wú)憂關(guān)閉PHP錯(cuò)誤腳本提示的詳解最簡(jiǎn)單的辦法就是直接在php程序代碼中加入下面代碼: 可以關(guān)閉所有notice 和 warning 級(jí)別的錯(cuò)誤。 把這個(gè)語(yǔ)句放在您腳本的功用包含文件中,通常為config.php 或者conn.php 中就可以控制輸出了。 當(dāng)然我也也可以在php.ini中進(jìn)行設(shè)置了方法如下 打開PHP安裝目錄下的php.
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-網(wǎng)站模板:web上存漏洞及原理分析、防范方法。