㈠ 如何限制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文件吧。
轉載,僅供參考。
㈡ 怎麼把網頁首頁index.php進行保護
怎麼把網頁首頁index.php進行保護?1
/2
首先說下一般虛擬主機做網站的時候不顯示後綴名的方法:
如果你買的是別人的虛擬主機的話,我們首先登陸虛擬主機管理後台,然後去修改首頁默認設置,然後我們把網站根目錄下的index.php(這個得看你網站下面主頁名字是什麼)移動到最上面就行。每個虛擬主機都有後台管理地址的,如果你是讓網路公司給你買的虛擬空間的話,那就讓他們幫你設置一下,這個其實很簡單的!
2
/2
如果是自己的伺服器的話:
如果你有自己的伺服器,你只需要修改一下默認文檔就行了。這個默認的首頁要跟你根目錄下面的文檔保持一致。
㈢ php配置防跨站、防跨目錄安全
現在很多網站都是採用php建站,不少都是直接使用現在成熟的cms程序,這些php開發的cms系統本身安全性可能並不高,這時就需要我們在伺服器做一些針對php程序配置防跨站、防跨目錄等一些設置,可以有效的防止伺服器上所有的php網站被惡意篡改。
適用范圍及演示系統
適用范圍:php5.3及以上版本
演示系統:centos
防跨站、防跨目錄安全設置方法
第1步:登錄到linux系統終端。
第2步:找到並打開php配置文件。
第3步:在php.ini最底部添加以下代碼,並保存。大家可就按以下代碼改成自己網站的配置即可。
[HOST=www.45it.com]
open_basedir=/wwwroot/www.45it.com/:/tmp/
[PATH=/wwwroot/www.45it.com]
open_basedir=/wwwroot/www.45it.com/:/tmp/
註:就如上代碼添加完之後就是防跨站防跨目錄的安全配置了,但是有一些缺點,就是比如說我們運行一些php探針等一些程序可能就是無法正常運行了,如果想讓網站正常運行php探針的話需要在/tmp/後加上:/proc/
第4步:添加完代碼並保存php.ini,之後重啟php服務即可生效。
㈣ 如何設置: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);
?>
目錄也是一樣的,把文件名,換成目錄路徑
㈤ PHP怎麼獲取文件目錄許可權
PHP獲取文件目錄許可權函數fileperms,使用這個函數可以文件或者目錄屬性。
例子程序:
<?php
$perms=fileperms('/etc/passwd');
if(($perms&0xC000)==0xC000){
//Socket
$info='s';
}elseif(($perms&0xA000)==0xA000){
//SymbolicLink
$info='l';
}elseif(($perms&0x8000)==0x8000){
//Regular
$info='-';
}elseif(($perms&0x6000)==0x6000){
//Blockspecial
$info='b';
}elseif(($perms&0x4000)==0x4000){
//Directory
$info='d';
}elseif(($perms&0x2000)==0x2000){
//Characterspecial
$info='c';
}elseif(($perms&0x1000)==0x1000){
//FIFOpipe
$info='p';
}else{
//Unknown
$info='u';
}