2011-12-09 163 views
0

嗨,我正在運行PHP安全信息,我收到以下問題。PHP安全信息問題

Warning 
allow_url_fopen is enabled. This could be a serious security risk. You should disable allow_url_fopen and consider using the PHP cURL functions instead. 
Current Value: 1 
Recommended Value: 0 

有人可以解釋我該如何解決這個問題。

Warning 
PHP may be executing as a "privileged" group, which could be a serious security vulnerability. 
Current Value: 99 
Recommended Value: 100 

Warning 
PHP may be executing as a "privileged" user, which could be a serious security vulnerability. 
Current Value: 99 
Recommended Value: 100 
+0

你是否以root身份運行apache? – Alfabravo

+0

@alfabravo:root是UID 0 ;.最後一部分明確指出它是UID 99.可能是www-data或類似的。 –

+0

[首先打開「allow_url_fopen已啓用」](http://www.phpfreaks.com/forums/index.php?topic=263572.0)。 ;-) – CodeCaster

回答

0

第一條消息意味着正是它說,allow_url_fopen選項在php.ini,它允許基於的fopen函數打開網址的啓用,例如這會工作:

fopen('http://www.example.com/somefile.txt'); 

的惡意用戶可以使用它來將它們的遠程文件加載到您的網絡服務器。

第二塊消息意味着您正在運行PHP解釋器(並且很可能是通過您的Web服務器,如Apache或nginx)作爲「特權」用戶,而在大多數情況下,該用戶是root用戶。這是一個非常糟糕的主意,因爲這個用戶擁有無限制的系統訪問權限,然後將這些權限傳遞給您的Web服務器。這將使您的Web服務器中的任何安全漏洞都讓入侵者完全擁有root訪問權限。

所以,如果你想這些消息被固定下來,以做兩件事情:

  1. 設置在php.ini中allow_url_fopen選項爲0
  2. 確保您不會啓動Web瀏覽器作爲root用戶,而是像www-data或apache這樣的用戶(在大多數通過軟件包管理器安裝Apache的系統上存在)。
2

我喜歡當人們花時間保護您的PHP設置;所以道具給你!

是的,您應該關閉allow_url_fopen,因爲這會導致您在執行遠程腳本時遇到許多安全問題。你可以通過編輯你的php.ini文件來做到這一點;通常位於/etc/php.ini中,但只是爲了確保檢查您的phpinfo()並查看它在「加載配置文件」中的位置。一旦你找到它,改變以下值:據

allow_url_fopen = 0 

爲PHP執行作爲「priveleged」組,則需要檢查哪些組Apache的用戶關聯。如果你有shell訪問您可以通過命令行執行此操作:

id {username} 

其中{username}是您apache用戶的名字......可能是「阿帕奇」可能是「PHP」可能是「WWW-數據」,等等。它的建議,Apache用戶在其自己的用戶羣:

apache.apache 

要做到這一點,你可以用下面的命令:

useradd -G {group-name} username 

所以它看起來像:

useradd -G apache apache 
+0

謝謝,這真的很有幫助;)生病通過ssh – DCHP

+0

偉大;讓我知道你是否有任何問題。如果它對你有幫助,那麼upvote會很好:) – dchrastil

+0

所以 - 我已經在過去的2個月中不眠之夜(不誇張!)試圖找出爲什麼我的VPS上託管的一些網站被反覆感染與遠程訪問木馬。在終於碰到這個之後,我想我可能終於找到了答案。希望它會停止,當我將此設置更改爲0.謝謝! – hazymat