我正試圖幫助一個朋友從一個網絡酒店移動到另一個網站。 舊的地方已經關閉,我只有一個平坦的tar文件。PHP腳本/目錄有什麼權限?
該網站包含HTML文檔,可以下載一個小的Java應用程序(在手機上加載)發送數據到網站。
移動Java應用程序發送一個字符串到URL=<HOST>/php/register.php
。這個php腳本包含另一個php腳本(../inc/db_login.php
),它使用$link=mysql_connect()
連接到SQL DB。另一個文件register.php
執行了SQL插入操作,將新發送的數據放入數據庫中。
我的問題是基本的,我應該把這2個PHP文件放在新網站上,目錄和文件應該具有什麼權限?
舊的Web服務器顯然有一個/php
和/inc
目錄。這些都不存在於新的網絡服務器上。我應該創建它們嗎?他們應該有什麼權限?我猜想在一個單獨的PHP文件中擁有密碼的原因是安全性。 /php
和/inc
目錄可能具有不同的權限。
新服務器的目錄:
/httpdos
/httpsdos
/cgi-bin
/conf
(和其他一些人可能不相關)
我的問題
請問文件擴展名(
.php
)意味着什麼服務器:爲PHP腳本的HTML代碼「包含」(<?...?>
之間,並在服務器需要看文件後綴或者是無關緊要的? (據我所知,在服務器上<?...?>
反應,當然)應的公共文件(
register.php
在我的情況)被放置在httpdocs/
目錄或不服務器(Apache的我認爲)反應的東西和其取出在另一個目錄?PHP腳本是否有權限
R-X
(讀取和執行),--X
(執行)或R--
(讀取)?從操作系統的角度來看,我猜apache只是讀取這些文件,這意味着它們應該是R--
,但這意味着如果PHP服務「停止」,客戶端將在瀏覽器中獲取所有PHP代碼(?)。我寧願它--X
,但因爲這既不是一個二進制也沒有#!
,我想它一定是--R
?如果公共PHP腳本可以放在另一個目錄中(例如
/php
而不是/httpdocs
),/php
(和腳本)應該有什麼權限?我猜服務器必須知道這個/php
目錄(或者是否有通常的默認值?)包含PHP腳本(
../inc/db_login.php
,包含SQL密碼)不應該在/httpdocs
下我猜。這意味着我的register.php
包含一個不在/httpdocs
子樹下的文件。這是否工作?服務器需要知道嗎?
我知道您可能需要了解服務器配置。在你的答案中假設默認值(如果是的話,你可以知道它在哪裏更改)。
感謝您的回答。我會把register.php放在httpdocs/php中。 現在我試着創建/ inc幷包含../../inc/db_login.php,但是創建/ inc被拒絕了......應該將db_login.php放在cgi-bin中然後呢?如果apache處於安全模式,那麼db_login必須位於httpdocs樹中......這不是安全風險嗎? – 2010-01-19 20:44:34
CGI腳本應該放在'cgi-bin'中。是的,在DocumentRoot下有配置文件是潛在的安全風險; PHP可以通過配置選項來解決這個問題,該選項指定了一個可以明確包含的額外目錄。但事實並非如此。 – 2010-01-19 20:48:54
但是,如果register.php和db_login.php都在html文檔根目錄下並且它們的權限相同,那麼它們在2個不同文件中的增益(安全性)是什麼。我認爲這個想法是圍繞db_login中包含的密碼提供「更多的安全性」...?如果PHP失敗,代碼到達客戶端是不是有風險?再一次,很多人非常感謝你的時間。/C – 2010-01-19 21:26:22