PHP上傳目錄禁止執行php文件實例講解

導讀:

禁止上傳目錄運行php等可執行文件,可以從一定程度上增加網站的安全性。之前我二次開發過別人開源的一個Thinkphp項目,我更換過Thinkphp內核,也檢查過有沒有後門和木馬,感覺挺安全的,但後面還是被彩票平臺篡改瞭首頁,我沒有仔細推敲和研究別人是怎麼做到的,而是直接刪掉瞭整個項目,對於不安全的源代碼,我都是直接舍棄不要。後來想瞭想,應該是被上傳瞭後門文件,然後shell提權修改瞭首頁文件。為瞭解決這種安全隱患問題,我服務器安裝瞭防篡改系統,同時禁止在上傳目錄裡執行php文件。

需要防范的PHP文件有三種類型:

第一種類型. 正常php文件                 a.php

第二種類型.  php擴展名有大小寫     a.pHp     a.PHP  a.Php

第三種類型.  雙重擴展名文件           a.php.a    a.php.xml

說明:通常隻考慮防范第一種,滲透攻擊常使用第二種和第三種。

第①種方法(推薦):

1、新建一個.htaccess文件,代碼內容如下:

<Files ~ ".php">
Order allow,deny
Deny from all
</Files>

或者用下面的代碼: 

<FilesMatch "\.(?i:php|php3|php4|php5)">
Order allow,deny
Deny from all
</FilesMatch>

2、上傳.htaccess文件到要禁止運行php的文件夾內,如下圖:

 第②種方法:

修改apache的配置文件httpd.conf,代碼如下:

<Directory D:\wwwroot\public\uploads>
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</Directory>

或者用下面的代碼: 

<Directory D:\wwwroot\public\uploads>
<FilesMatch "\.(?i:php|php3|php4|php5)">
  Order allow,deny
  Deny from all
</FilesMatch>
</Directory>

第③種方法:

在網站根目錄新建一個.htaccess文件,代碼如下:

RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php)$ –[F]

上述代碼是直接指定哪個目錄文件夾下,禁止執行php文件。

到此這篇關於PHP上傳目錄禁止執行php文件實例講解的文章就介紹到這瞭,更多相關PHP上傳目錄禁止執行php文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: