1. 如何在Apache和Nginx禁止上傳目錄里php的執行許可權
網站程序的上傳目錄通常是不需要PHP執行解釋許可權,通過限制目錄的PHP執行許可權可以提網站的安全性,減少被攻擊的機率。
下面和大家一起分享下如何在Apache和Nginx禁止上傳目錄里PHP的執行許可權。
在虛擬主機配置文件中增加php_flag engine off指令即可,配置如下
"/website/uploads">,denyAllowfromallphp_flagengineoff
Nginx更簡單,直接通過location條件匹配定位後進行許可權禁止。
在server配置段中增加如下的配置
如果是單個目錄
location~*^/uploads/.*.(php|php5)${denyall; }
如果是多個目錄
location~*^/(attachments|uploads)/.*.(php|php5)${denyall;}
注意:這段配置文件一定要放在下面配置的前面才可以生效。
location~.php${ fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
最後給一個完整的配置示例
location~/mm/(data|uploads|templets)/*.(php)${ denyall; } location~.php${ try_files$uri/404.html; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
配置完後記得重啟Nginx生效。
2. PHP寫入文件許可權問題
首先,fopen不是「寫入文件」。
設777是文件系統的用戶許可權。php打開文件,除了受文件系統的限制,還受apache和php本身安全性限制。例如,apache限定了訪問許可權只限於/www,而你要操作/log的話,是不可能的,盡管/log里文件系統設了777。還有,在手冊里fopen里有說「如果激活了
安全模式
或者
open_basedir
則會應用進一步的限制。」希望對你有幫助。
3. apache 怎麼設置目錄許可權設置 放js css php 圖片的文件夾不能直接訪問
取消這些文件夾的options裡面的index即可,也可以在這些文件夾下放一個空的index.html文件。
4. 請教windows下apache的許可權設置
因為我的伺服器是2008的且是64位的windows下apache的許可權設置,這里只說Windows下Apache應用環境相關的目錄許可權設置,至於其他基本的伺服器目錄許可權設置就不提啦!
這個是我的伺服器實際進行配置的環境配置情況:
apache安裝目錄:d:www-sapache
php目錄:d:www-sphp5
mysql目錄:d:www-smysql
網站根目錄:d:wwwhtdocschaodiquan.com 抄底專門為運行Apache運行所使用的用戶:apache-u(可不隸屬於任何用戶組)Windows下Apache應用環境塔建目錄安全設置操作步驟:配置目錄許可權 這里的許可權是重點
Apache所在的根目錄(也就是D盤),只需要讀取的許可權,並且這個讀取許可權不需要繼承到子目錄與文件(可以在許可權設置高級里選擇——應用到:只有該文件夾——許可權:列出文件夾/讀取數據, 讀取屬性,讀取擴展屬性,讀取許可權——確定)。
Apache安裝目錄的上級目錄(d:www-s),需要「讀取」的許可權(和根目錄D盤的許可權雷同)。
Apache安裝目錄,需要「列出文件夾目錄」和「讀取」的許可權(可以為了方便使用繼承)。
Apache安裝目錄下的子目錄許可權設置
「bin」和「moles」目錄需要「讀取和運行」、「列出文件夾和目錄」、「讀取」的許可權。
「logs」目錄需要「列出文件夾和目錄」、「讀取」、「寫入」的許可權(若Apache安裝目錄的許可權使用啦繼承,可只添加「寫入」許可權即可)。
到這里Apache的許可權已經設置完畢,接下來設置PHP的許可權
PHP目錄(PHP5)可簡單的設置為「讀取和運行」、「列出文件夾和目錄」、「讀取」的許可權。
Mysql目錄下的bin文件夾和文件(mysql)需要為添加apache用戶的「遍歷文件夾和運行文件」、「列出文件夾和讀取數據」的許可權(可以在許可權高級設置里找到)。
到這里Apache+Mysql+Php已經基本可以使用,接著配置網站根目錄許可權
網站根目錄(www內)的上級目錄www需要讀取(「列出文件夾和讀取數據」、「讀取屬性」、「讀取擴展屬性」、「讀取許可權」)的許可權(和Apache的上級目錄許可權雷同,不需要繼承到子目錄和文件中去)。
網站根目錄(htdocs)可簡單的設置「讀取」許可權就可以啦(然後可以根據需要對緩存文件夾設置可寫許可權)。
到這里Apache+PHP+Mysql的環境受限制許可權設置基本完成。
為Apache服務啟用受限制用戶
進入服務管理器(Services.msc,或者「我的電腦——屬性——管理——服務」),找到Apache的服務項(Apache2.2),設置屬性,登錄用戶選擇受限用戶(Apache-u)輸入受限用戶的密碼,應用,確定。
這里「確定」之後一般會有提示(已授予賬戶.apache-u「以服務方式登錄」的權利)。這個提示相當於在組策略(開始->管理工具
->本地安全策略,或者使用gpedit.msc打開)中的「用戶權利分配」中選擇「作為服務登陸」,添加apache-u用戶。
可在任務管理器中查看httpd.exe進程的用戶名為apache-u,使用PHP+Mysql的程序都可正常運行。
到這里已經完成啦「Windows下Apache應用環境目錄許可權」的受限制使用設置。
5. 如何設置php訪問目錄的許可權
<VirtualHost *>
ServerName www..com
DocumentRoot /usr/local/apache/htdocs/test1
<Directory /usr/local/apache/htdocs/test1>
php_admin_value open_basedir /usr/local/apache/htdocs/test1
</Directory>
</VirtualHost>
6. php網站文件目錄許可權如何開
將許可權設置成777就可以了啊。chmod 777 【文件名】
「777」代表許可權,對應rwdrwdrwd,從左往右第一位『7』代表屬主的許可權對應第一組『rwd』,r標識可以讀,w代表可以寫,x代表可以執行。
第二位『7』代表屬組的許可權,第三位『7』代表所有人的許可權。例如只允許屬主讀寫執行賦予700許可權對應rwd許可權。也可以使用a、u、字母表示許可權,比如chmod a+x 【文件名】 是賦予任何人執行的許可權,chmod a+r 【文件名】是賦予所有人讀得許可權,chmod a+w 【文件名】是賦予所有人寫的許可權,等等。
不過設置777不安全,最好設置成可讀就可以了,744應該可以。
7. 如何設置:PHP 程序的目錄許可權
有php函數:chomd();
chmod() 函數改變文件模式。
chmod(file,mode)參數 描述
file 必需。規定要檢查的文件。
mode 可選。規定新的許可權。
mode 參數由 4 個數字組成:
第一個數字永遠是 0
第二個數字規定所有者的許可權
第二個數字規定所有者所屬的用戶組的許可權
第四個數字規定其他所有人的許可權
可能的值(如需設置多個許可權,請對下面的數字進行總計):
1 - 執行許可權
2 - 寫許可權
4 - 讀許可權
<?php
// 所有者可讀寫,其他人沒有任何許可權
chmod("test.txt",0600);
// 所有者可讀寫,其他人可讀
chmod("test.txt",0644);
// 所有者有所有許可權,其他所有人可讀和執行
chmod("test.txt",0755);
// 所有者有所有許可權,所有者所在的組可讀
chmod("test.txt",0740);
?>
目錄也是一樣的,把文件名,換成目錄路徑
8. 在linux環境下,修改apache的許可權問題,使得php能夠對文件和文件目錄進行讀寫刪改的操作
是的,是apache的許可權問題,一般把網站所在目錄設置成apache,許可權自己設定,
chown -R apache:apache /網站所在目錄
chmod -R 775 /網站所在目錄
9. php apache許可權的文件怎麼打開
在apache伺服器安全配置時,首先會想到設置文件上傳目錄禁止php腳本執行,常用的方法是修改apache配置文件,或者配置在htaccess文件裡面。
上面的方法只是限制了php文件執行,如果沒有設置php腳本對文件夾的訪問許可權,對於那些可以執行php文件,php腳本甚至能直接讀寫系統分區的文件。
可以通過配置open_basedir來限制php腳本允許訪問的目錄,下面是兩種將php腳本對磁碟中文件的訪問操作限制在指定目錄下的方法,第一種是在php.ini文件中配置: