2012-03-02 60 views
1

我問過這個問題,雖然我提出了幾個獎勵,但我從來沒有得到太多的答案(參見here)。更一般地說,我想知道是否有suPHP的安全概念?什麼是自由於這些腳本獲得與用戶的權限執行要suPHP有沒有安全性?

www.example.com/rm-f-r.php 

www.example.com/return_some_iamge.php 

阻止任何人,它的基本保證acesss。


編輯爲了詳細說明上述情況,我的問題是一個概念上的一個。假設我們在/home/user/test.php有一個文件。讓這個文件做任何事情(rm -f -r /,獲取並返回一張圖片,重啓計算機......)如果我將瀏覽器指向該文件(假設包含的文件夾是Apache下的啓用網站),我該如何告訴瀏覽器只允許該文件的所有者執行它?


編輯2:我從來沒有明確說明這是我認爲suPHP僅用於與Apache,但我說的是驗證Linux用戶只用一個瀏覽器(即Web瀏覽器)。如果我們沒有進行身份驗證,那麼任何人在技術上都可以訪問服務器上的任何腳本(對於網站來說這不是問題,因爲他們始終將權限設置爲0644,所以基本上整個世界都可以看到。另一方面,有權限一般設置爲0700

+0

你的問題還不清楚。服務器程序刪除文件或返回圖像的內在錯誤是什麼?什麼樣的訪問被「保證」?我無法分辨你想要問什麼,建議或防止什麼。 – Cheekysoft 2012-03-02 12:21:51

+0

@Cheekysoft我會提出的問題 – puk 2012-03-02 12:44:35

+0

我相當有信心我的問題沒有解決方案http://stackoverflow.com/a/9561335/654789 – puk 2012-03-06 04:39:57

回答

4

suPHP會影響PHP運行時的執行權限,用戶授權編寫.php文件。這意味着PHP程序作者只能讀取和寫入他自己擁有或以其他方式訪問的文件。

如果您在您的網站上放置了一個PHP文件,您可以使任何與您網站相關的人都可以公開運行 - 使用suPHP的不會更改此。如果沒有登錄到您的網站,所有網絡用戶都是匿名的,無法可靠地識別個人。 suPHP僅控制腳本執行時的本地權限,它不打算引入任何形式的Web用戶身份驗證或授權。

如果您想控制哪些用戶可以真正運行腳本,您需要實現一些登錄功能並強制用戶登錄到您的站點。然後添加一個檢查到敏感的PHP腳本(或Apache配置),如果當前登錄的Web用戶不是您希望執行該腳本的人,這將使其中止請求。

+0

是的,但我們*如何通過網絡瀏覽器建立所有權?使用linux,您登錄並啓動會話,是否有相應的瀏覽器登錄? – puk 2012-03-02 12:50:42

+1

您需要在PHP中研究會話和用戶身份驗證技術。或者爲了快速修復,請查看Apache的limit/allow/deny指令和htpasswd控件,例如http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html – Cheekysoft 2012-03-02 13:24:46

+0

我將如何中止它?我遇到的概念性問題是,如果我干擾'php'腳本,我冒險改變'php'腳本執行的用戶。我猜測apache會捕獲所有對'php'文件的請求,並將它發送給一個驗證文件,讓它叫做validate.php,一旦成功,'validate.php'就會調用原始的'php'文件。但是現在,'validate.php'已經運行,可能是用戶'var-www',原始的'php'文件也會運行。 AFAIK suPHP只在一開始就改變用戶**一次**。 – puk 2012-03-02 13:27:42

相關問題