導(dǎo)讀:
禁止上傳目錄運(yùn)行php等可執(zhí)行文件,可以從一定程度上增加網(wǎng)站的安全性。之前我二次開(kāi)發(fā)過(guò)別人開(kāi)源的一個(gè)Thinkphp項(xiàng)目,我更換過(guò)Thinkphp內(nèi)核,也檢查過(guò)有沒(méi)有后門(mén)和木馬,感覺(jué)挺安全的,但后面還是被彩票平臺(tái)篡改了首頁(yè),我沒(méi)有仔細(xì)推敲和研究別人是怎么做到的,而是直接刪掉了整個(gè)項(xiàng)目,對(duì)于不安全的源代碼,我都是直接舍棄不要。后來(lái)想了想,應(yīng)該是被上傳了后門(mén)文件,然后shell提權(quán)修改了首頁(yè)文件。為了解決這種安全隱患問(wèn)題,我服務(wù)器安裝了防篡改系統(tǒng),同時(shí)禁止在上傳目錄里執(zhí)行php文件。
需要防范的PHP文件有三種類(lèi)型:
第一種類(lèi)型. 正常php文件 a.php
第二種類(lèi)型. php擴(kuò)展名有大小寫(xiě) a.pHp a.PHP a.Php
第三種類(lèi)型. 雙重?cái)U(kuò)展名文件 a.php.a a.php.xml
說(shuō)明:通常只考慮防范第一種,滲透攻擊常使用第二種和第三種。
第①種方法(推薦):
1、新建一個(gè).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文件到要禁止運(yùn)行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)站根目錄新建一個(gè).htaccess文件,代碼如下:
RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php)$ –[F]
上述代碼是直接指定哪個(gè)目錄文件夾下,禁止執(zhí)行php文件。
到此這篇關(guān)于PHP上傳目錄禁止執(zhí)行php文件實(shí)例講解的文章就介紹到這了,更多相關(guān)PHP上傳目錄禁止執(zhí)行php文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- ThinkPHP菜單無(wú)極分類(lèi)實(shí)例講解
- PHP生成縮略圖實(shí)例講解
- Thinkphp自定義美化success和error提示跳轉(zhuǎn)頁(yè)面代碼實(shí)例
- PHP隨機(jī)生成18位不重復(fù)的訂單號(hào)代碼實(shí)例