成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP保護文件系統的具體代碼分享

開發 后端
PHP保護文件系統是非常湊效的。我們在文章中使用了PHP站點示例,來幫助大家解決文件系統的保護問題,增加PHP的經驗積累。

文件系統對于任何一個站點來說都是相當重要的,程序員們都在不遺余力的保護著自己的系統不受侵犯。今天我們就為大家講解了PHP保護文件系統的具體代碼示例。曾經有一個 Web 站點泄露了保存在 Web 服務器的文件中的客戶數據。該 Web 站點的一個訪問者使用 URL 查看了包含數據的文件。雖然文件被放錯了位置,但是這個例子強調了針對攻擊者保護文件系統的重要性。

#t#如果 PHP 應用程序對文件進行了任意處理并且含有用戶可以輸入的變量數據,請仔細檢查用戶輸入以確保用戶無法對文件系統執行任何不恰當的操作。清單 1 顯示了下載具有指定名的圖像的 PHP 站點示例。

  1. <?php   
  2. if ($_POST['submit'] == 'Download') {   
  3.     $file = $_POST['fileName'];   
  4.     header("Content-Type: application/x-octet-stream");   
  5.     header("Content-Transfer-Encoding: binary");   
  6.     header("Content-Disposition: attachment; filename=\"" . $file . "\";" );   
  7.     $fh = fopen($file, 'r');   
  8.     while (! feof($fh))   
  9.     {   
  10.         echo(fread($fh, 1024));   
  11.     }   
  12.     fclose($fh);   
  13. } else {   
  14.     echo("<html><head><");   
  15.         echo("title>Guard your filesystem</title></head>");   
  16.     echo("<body><form id=\"myFrom\" action=\"" . $_SERVER['PHP_SELF'] .   
  17.         "\" method=\"post\">");   
  18.     echo("<div><input type=\"text\" name=\"fileName\" value=\"");   
  19.     echo(isset($_REQUEST['fileName']) ? $_REQUEST['fileName'] : '');   
  20.     echo("\" />");   
  21.     echo("<input type=\"submit\" value=\"Download\" name=\"submit\" /></div>");   
  22.     echo("</form></body></html>");   
  23. }  

正如您所見,清單 1 中比較危險的腳本將處理 Web 服務器擁有讀取權限的所有文件,包括會話目錄中的文件(請參閱 “保護會話數據”),甚至還包括一些系統文件(例如 /etc/passwd)。為了進行PHP保護文件系統演示,這個示例使用了一個可供用戶鍵入文件名的文本框,但是可以在查詢字符串中輕松地提供文件名。

同時配置用戶輸入和文件系統訪問權十分危險,因此最好把應用程序設計為使用數據庫和隱藏生成的文件名來避免同時配置。但是,這樣做并不總是有效。清單 2 提供了驗證文件名的示例例程。它將使用正則表達式以確保文件名中僅使用有效字符,并且特別檢查圓點字符:..。

  1. function isValidFileName($file) {   
  2.     /* don't allow .. and allow any "word" character \ / */   
  3.     return preg_match('/^(((?:\.)(?!\.))|\w)+$/', $file);   

以上就是本文為大家分享的PHP保護文件系統的具體代碼編寫。

責任編輯:曹凱 來源: CSDN
相關推薦

2009-11-24 14:52:45

PHP動態多文件上傳

2009-11-24 13:33:49

2018-05-02 08:35:33

LinuxTripwire文件系統

2009-11-25 10:31:35

PHP數組實現單鏈表

2010-09-25 10:47:40

Linux文件系統Tripwire

2009-11-25 17:48:18

PHP文件系統相關函數

2009-11-25 17:28:26

PHP對話

2009-12-01 14:33:06

PHP生成html文件

2009-12-01 10:50:45

PHP函數requir

2019-09-18 10:22:13

操作系統LinuxCentOSMac

2011-08-01 16:42:24

ibmdwNFS文件系統

2020-07-22 14:53:06

Linux系統虛擬文件

2013-05-27 14:46:06

文件系統分布式文件系統

2010-04-30 15:51:48

Unix系統

2009-12-01 14:26:19

PHP函數ob_sta

2011-01-13 14:10:30

Linux文件系統

2009-11-02 09:45:23

VB.NET文件系統對

2012-09-19 13:48:33

pNFS文件系統

2009-11-24 18:37:55

PHP數組轉換

2010-05-10 19:03:00

Unix文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品天堂 | 亚洲第一在线 | www.夜夜草 | 色网在线看 | 日韩成人在线电影 | 久久久蜜桃一区二区人 | 国产精品久久久久久久久久 | 日韩欧美在线观看一区 | 91se在线| 免费成人在线网站 | 日韩精品在线看 | 亚洲精品国产电影 | 中文字幕在线三区 | 日韩视频在线免费观看 | 久久国品片 | a级大片免费观看 | www.四虎.com| 午夜免费网 | 国产欧美日韩在线 | www.天天干.com| 影音av| 丝袜毛片 | 91欧美精品成人综合在线观看 | 一区二区三区在线免费看 | 一区二区三区四区国产 | 精品国产鲁一鲁一区二区张丽 | 91九色视频| 一区二区三区四区免费观看 | 国产精品国产a级 | 国产精品一区一区 | 99福利| 日韩精品一区二区三区中文在线 | 毛片网站在线观看 | 亚洲一区国产精品 | 亚洲国产欧美国产综合一区 | 69亚洲精品 | 视频1区2区| av中文字幕在线 | www.天天干.com | 日本一区二区三区四区 | 国产精品免费一区二区三区四区 |