iis、apache与nginx禁止目录执行asp、php脚本的实现方法
為了網站安全,很多圖片上傳目錄等不需要執行腳本的目錄我們可以通過下面的方法禁止執行腳本。
一般iis中比較簡單,iis6如下圖所示即可:
很多購買虛擬主機空間的用戶,如果空間商提供了在線管理程序,也可以實現。具體的看下幫助即可。
需要知道目錄名稱,設置即可。
iis7+禁止執行php等
IIS7也類似于IIS6.0,選擇站點對應的目錄,data、uploads及靜態html文件目錄,雙擊功能試圖面板中的“處理程序映射”(如圖2)
在“編輯功能權限……”中,我們直接去除腳本的執行權限即可。(如圖3)
apache中一般是通過.htaccess文件來限制
Apache環境規則內容如下:Apache執行php腳本限制 把這些規則添加到.htaccess文件中 如何起名
復制代碼 代碼如下:
RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.).(php)$ – [F]
RewriteRule data/(.).(php)$ – [F]
RewriteRule templets/(.*).(php)$ –[F]
以Apache 模塊方式運行 PHP,你可以在vhosts配置文件中添加如下代碼:
禁止upload目錄執行php文件權限
<Directory /www/www.iis7.com/upload>php_flag engine off<Directory ~ “^/www/.*/upload”> <Files ~ “.php”> Order allow,deny Deny from all
nginx環境規則內容如下:nginx執行php腳本限制
LNMP有一個缺點就是目錄權限設置上不如Apache,有時候網站程序存在上傳漏洞或類似pathinfo的漏洞從而導致被上傳了php木馬,而給網站和服務器帶來比較大危險。建議將網站目錄的PHP權限去掉,當訪問上傳目錄下的php文件時就會返回403錯誤。
首先要編輯nginx的虛擬主機配置,在fastcgi的location語句的前面按下面的內容添加:
復制代碼 代碼如下:
location ~ /(data|uploads|templets)/.*.(php|php5)?$ {
deny all;
}
下面是補充:
以下配置均在nginx配置的server處添加
復制代碼 代碼如下:
location ~ /attachments/.*.(php|php5)?$ {
deny all;
}
禁止attachments目錄執行php文件權限
2、多個目錄
復制代碼 代碼如下:
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
禁止attachments與upload目錄執行php文件權限
配置完后,重新reload nginx即可。
總結
以上是生活随笔為你收集整理的iis、apache与nginx禁止目录执行asp、php脚本的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下安装MongoDB单节点
- 下一篇: php5.3中ZendGuardLoad