PHP上傳目錄禁止執(zhí)行php文件實例講解
導(dǎo)讀:
禁止上傳目錄運行php等可執(zhí)行文件,可以從一定程度上增加網(wǎng)站的安全性。之前我二次開發(fā)過別人開源的一個Thinkphp項目,我更換過Thinkphp內(nèi)核,也檢查過有沒有后門和木馬,感覺挺安全的,但后面還是被彩票平臺篡改了首頁,我沒有仔細(xì)推敲和研究別人是怎么做到的,而是直接刪掉了整個項目,對于不安全的源代碼,我都是直接舍棄不要。后來想了想,應(yīng)該是被上傳了后門文件,然后shell提權(quán)修改了首頁文件。為了解決這種安全隱患問題,我服務(wù)器安裝了防篡改系統(tǒng),同時禁止在上傳目錄里執(zhí)行php文件。
需要防范的PHP文件有三種類型:
第一種類型. 正常php文件 a.php
第二種類型. php擴展名有大小寫 a.pHp a.PHP a.Php
第三種類型. 雙重擴展名文件 a.php.a a.php.xml
說明:通常只考慮防范第一種,滲透攻擊常使用第二種和第三種。
第①種方法(推薦):
1、新建一個.htaccess文件,代碼內(nèi)容如下:
<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的文件夾內(nèi),如下圖:
第②種方法:
修改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>
第③種方法:
在網(wǎng)站根目錄新建一個.htaccess文件,代碼如下:
RewriteEngine on RewriteCond % !^$ RewriteRule uploads/(.*).(php)$ – [F] RewriteRule data/(.*).(php)$ – [F] RewriteRule templets/(.*).(php)$ –[F]
上述代碼是直接指定哪個目錄文件夾下,禁止執(zhí)行php文件。
到此這篇關(guān)于PHP上傳目錄禁止執(zhí)行php文件實例講解的文章就介紹到這了,更多相關(guān)PHP上傳目錄禁止執(zhí)行php文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
laravel框架實現(xiàn)為 Blade 模板引擎添加新文件擴展名操作示例
這篇文章主要介紹了laravel框架實現(xiàn)為 Blade 模板引擎添加新文件擴展名操作,結(jié)合實例形式詳細(xì)分析了laravel框架Blade 模板引擎添加新文件擴展名具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2020-01-01PHP實現(xiàn)搜索地理位置及計算兩點地理位置間距離的實例
這篇文章主要介紹了PHP實現(xiàn)搜索地理位置及計算兩點地理位置間距離的實例,地理位置搜尋的例子中使用到了MongoDB數(shù)據(jù)庫,需要的朋友可以參考下2016-01-01