㈠ 如何在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生效。
㈡ 瑙e喅PHP鍦╓indows IIS 涓婁紶鐨勫浘鐗囨棤娉曡塊棶鐨勯棶棰
鍦╓indows緋葷粺涓婏紝濡傛灉浣犻亣鍒癙HP閫氳繃IIS涓婁紶鍥劇墖鍚庢棤娉曚粠嫻忚堝櫒姝e父璁塊棶鐨勯棶棰橈紝寰堝彲鑳芥槸鍥犱負鏉冮檺璁劇疆闂棰樸傞栧厛錛屾墦寮鎺у埗闈㈡澘錛屾壘鍒板苟鐐瑰嚮"瀹夊叏涓蹇"錛岃繘鍏Windows闃茬伀澧欒劇疆銆傚叧闂闃茬伀澧欏悗錛岄棶棰樺彲鑳芥簮浜嶱HP榛樿や嬌鐢ㄧ郴緇熶復鏃剁洰褰"C:/Windows/Temp"錛岃ョ洰褰曟潈闄愬彲鑳戒笉瓚充互璁㊣IS璁塊棶銆傝В鍐蟲柟娉曟槸淇鏀筽hp.ini鏂囦歡錛屽皢"upload_tmp_dir"閰嶇疆涓轟竴涓鍏鋒湁閫傚綋鏉冮檺鐨勪復鏃剁洰褰曪紝渚嬪傝嚜瀹氫箟涓涓鐩褰曞苟璧嬩簣IUSER鍜孖IS_IUSERS鏉冮檺錛屾垨鑰呰劇疆涓篍veryone鏉冮檺錛屼互渚誇簬鏂囦歡涓婁紶鍜屽悗緇璁塊棶銆傝繖鏍鳳紝紜淇濅笂浼犵殑鏂囦歡鍦ㄧЩ鍔ㄥ埌鎸囧畾鐩褰曞悗錛屾嫢鏈夋g『鐨勬潈闄愶紝灝辮兘閬垮厤"401 - 鏈鎺堟潈"鐨勯敊璇銆傞噸瑕佹彁紺猴細鍔″繀紜淇濅綘涓簎pload_tmp_dir璁劇疆鐨勭洰褰曞叿鏈塈USER鍜孖IS_IUSERS鏉冮檺錛屾垨鑰呰嚦灝戞槸Everyone鏉冮檺錛屼互瑙e喅鍥劇墖鏃犳硶璁塊棶鐨勯棶棰樸
㈢ 如何限制Nginx+PHP的目錄許可權
最近Nginx的使用者是越來越多,多數網站也從原本使用很多的Apache平台或其他平台遷移到了Nginx。對於剛剛接觸Nginx的朋友來說,如何限制Nginx+PHP的目錄許可權成了實際問題,
大家都知道,在Apache中可以很容易的對虛擬目錄進行許可權控制,如:
程序代碼如下:
<VirtualHost IPn>
ServerAdmin [email protected]
DocumentRoot /usr/www/xpb/
ServerName IP:80
ServerAliasIP
ErrorLog logs/default-error_log
php_admin_value open_basedir "/tmp/:/usr/www/xpb/"
</VirtualHost>
關鍵是後面的這句php_admin_value,這樣就限制了php的操作目錄僅限於/tmp/和/usr/www/xpb/這兩個目錄了。對於Apache虛擬主機來說,這個設置十分有用,結合在php.ini中禁用一些php函數,幾乎可以杜絕PHP木馬對其他站點及系統的危害。我雖沒專業做過linux下的虛擬主機,但相信各大虛擬主機商也是這么做的。
看來對於Apache最好的辦法還是使用「在php.ini中禁用一些危險的php函數和在Apache虛擬主機中配置php_admin_value」的方式來做虛擬主機的安全。
關於Nginx的配置文件,參考了很多資料,好像是不支持php_admin_value open_basedir,也就是Nginx暫時還沒有Apache的 php_myadmin_value這類的設置。如果用Nginx做虛擬主機,各用戶之間的目錄安全控制如何來做呢?網上很多人說,限制上傳文件類型,做好程序安全不就行了么?對,對於自己的站點來說這樣完全可以。但如果虛擬主機是給別人用的,又給予了FTP許可權,總不能不讓人上傳php文件吧。
轉載,僅供參考。
㈣ Linux下使用PHP實現提升許可權技巧phplinux提權
隨著互聯網的發展和IT技術的日新月異,Linux系統作為一種常用的伺服器操作系統,也變得越來越重要。PHP作為一種強大的腳本語言,在Linux系統下也得到了廣泛的應用。在Linux系統中,管理員或開發人員需要通過提升用戶許可權來完成各種操作,如編輯系統文件或者執行某些需要root許可權才能運行的腳本等。本文將闡述在Linux系統下使用PHP實現提升許可權技巧。
一、前置知識
在討論如何使用PHP實現提升許可權之前,需要了解一些Linux系統的基本知識,如用戶、用戶組、文件許可權等。在Linux系統中,每個文件或目錄都有建立它的用戶和用戶組,並且每個用戶都屬於某一個用戶組,用戶和用戶組都有各自的許可權標記,如讀、寫、執行等,以及文件的屬性,例如所有者、所屬組等等。在使用PHP實現提升許可權的過程中,我們需要了解這些基本知識,以便正確設置文件和目錄的許可權。
二、提升許可權的方法
1.使用sudo
在Linux系統中,管理員可以使用sudo命令臨時提升自己的許可權,以執行需要root許可權才能運行的操作。如果要在PHP中使用此方法,可以使用PHP的exec函數執行sudo命令。下面是一個使用sudo命令執行某個腳本的例子:
“`
$cmd = “sudo /usr/local/in/test.sh”;
exec($cmd, $output);
print_r($output);
?>
“`
在這個例子中,我們使用sudo命令執行了一個名為test.sh的腳本,該腳本需要root許可權才能執行。執行完畢後,輸出結果會被存儲在$output數組中,然後使用print_r函數輸出。
2.修改文件許可權
在Linux系統中,管理員可以通過修改文件或目錄的許可權來提升用戶的許可權。如果要在PHP中使用此方法,可以使用PHP的chmod函數修改文件或目錄的許可權。下面是一個修改文件許可權的例子:
“`
$file = “/var/www/html/test.php”;
chmod($file, 0755);
?>
“`
在這個例子中,我們將文件/var/www/html/test.php的許可權修改為755,其中數字755表示所有者擁有讀、寫、執行許可權,組用戶和其他用戶擁有讀、執行許可權。通過修改許可權,我們可以讓PHP腳本獲得更高的執行許可權,以便執行某些需要root許可權才能運行的操作。
3.使用setuid
在Linux系統中,我們可以為某些可執行文件設置setuid標記,這樣所有者擁有執行該文件的許可權。如果要在PHP中使用此方法,我們可以設置PHP腳本的所有者為root,並且為PHP可執行文件設置setuid標記。下面是一個使用setuid的例子:
“`
$cmd = “/usr/local/php/php-cgi”;
posix_setuid(0);
chmod($cmd, 04750);
exec($cmd, $output);
print_r($output);
?>
“`
在這個例子中,我們使用PHP的posix_setuid函數將PHP腳本的所有者設置為root,在執行完畢後將PHP可執行文件/usr/local/php/php-cgi的許可權設置為4750,其中數字4750表示將setuid標記設置為4,保留原有所有者用戶組的讀許可權,並且為所有組用戶和其他用戶設置執行許可權。執行完畢後,輸出結果會被存儲在$output數組中,然後使用print_r函數輸出。
三、安全問題
在使用PHP實現提升許可權的過程中,我們需要注意安全問題,以保證系統的安全性。我們需要使用sudo或setuid時,只將需要的操作對應的程序或文件提升到root許可權,而不是整個程序或文件,這樣可以控制提升許可權的范圍,從而減少濫用許可權的風險。我們需要謹慎選擇在PHP中執行的命令或操作,並為PHP腳本設置足夠的安全保護,避免被惡意攻擊所利用。我們需要定期審核提升許可權的記錄,並嚴格控制提升許可權的文件和目錄的許可權,避免被非法訪問或篡改。
在Linux系統下,使用PHP實現提升許可權是一種十分實用的技巧,可以讓管理員或開發人員獲得更高的許可權來完成各種操作。在使用此技巧時,我們需要了解Linux系統的基本知識,正確設置文件和目錄的許可權,並注意安全問題,以保證系統的穩定性和安全性。
相關問題拓展閱讀:
linux下php文件設置成什麼許可權安全又不影響運行?linux下php文件設置成什麼許可權安全又不影響運行?
建一個用戶
這個用戶來茄銷虧運行網站程序apache
nginx之類
你的PHP文件設顫神置成
chown
你建立的用戶
然後讀寫許可權
你看斗李著辦
關於php linux 提權的介紹到此就結束了.