網站模板:web上存漏洞及原理分析、防范方法_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:php中輸出變量加大括號{}作用
      php輸出變量加大括號,這是什么寫法?看下面一段代碼: 可以看出php輸出變量加大括號同使用.運算符輸出變量字符串效果是一樣,總結出下面3點以幫助理解php輸出變量加大括號{}的作用: 1. 表示{}里面的是一個變量 ,執(zhí)行時按照變量來處理; 2. 在字符串中引用變量使用的特殊

      網站提供上存功能,是很多站點經常會有功能,商城,論壇還有常見一些網盤站點。常見互聯(lián)網上面,我們也是經常聽說,某某站點出現上存漏洞,某某開源項目有 上存漏洞。 從互聯(lián)網開始出現動態(tài)程序,上存漏洞像幽靈一樣,頻繁的出現在各種系統(tǒng)中。為什么,一個上存漏洞會這么頻繁出現呢。而且,有些系統(tǒng)反復修補,多次還沒有修 補成功!其實主要問題,還是出現在上存原理上面。我們先看看,上存過程。
      網站上存過程分析

      復制代碼 代碼如下:
      <?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>


      以上是個簡單測試例子,我們看看
      01.png
      我們來分析下:
      name來自 上存時候選擇文件名稱
      type 是文件類型, 這個類型那里來的呢?呵呵,這里非常關鍵的。 很多時候,很多同人會認為,這個是服務器自動判斷生成的。 如果是這樣想,覺得也有可能。 php 封裝了上存,它自帶類庫好像可以的。 但是,反過來想想,你隨便選擇個什么格式文件,都會有格式類型。這樣一想,我們推斷這個值,可能也來自用戶輸入的。 我們來抓包看看我們類型。
      02.png
      type值 也來自,用戶輸入值了。
      size來自程序計算上存文件大小,這個是自動計算的。 相比我們都清楚的。

      你說這么多有啥樣呢?
      想 必有朋友開始問了,我上面分析上存文件格式 ,跟開發(fā)出現漏洞有什么關聯(lián)呢。 其實,我們想想,上面說的,一個文件名稱name屬性,以及文件類型type屬性。 在我們上存文件,后端處理時候,會經常用到的。 作為開發(fā)者,在使用這2個變量,一定要繼續(xù)執(zhí)行“一切輸入代碼是有害的”原則。你在使用時候,要把它當作,跟其它get,post 獲取變量一樣處理。 要檢測,過濾一切輸入變量。
      我們經常做功能是,限定用戶輸入必須是某種格式文件,然后保存為該格式。分析到這里,下面有很多需要繼續(xù)分析地方,今天先提出大綱。接下來會分析這樣常見3類上存漏洞。
      1.使用用戶文件名,生成文件,特殊字符過濾不嚴格,導致文件生成出現漏洞
      2.移動文件目錄時候,由于采用用戶傳入的文件名拼接,生成到錯誤目錄
      3.相信用戶輸入type 類型,直接將用戶文件名保存為文件

      分享:模板無憂關閉PHP錯誤腳本提示的詳解
      最簡單的辦法就是直接在php程序代碼中加入下面代碼: 可以關閉所有notice 和 warning 級別的錯誤。 把這個語句放在您腳本的功用包含文件中,通常為config.php 或者conn.php 中就可以控制輸出了。 當然我也也可以在php.ini中進行設置了方法如下 打開PHP安裝目錄下的php.

      來源:模板無憂//所屬分類:PHP教程/更新時間:2013-07-01
      相關PHP教程