2010-06-08 61 views
1

我有一些功能可以在我的web應用程序中與服務器的操作系統進行交互。我寫了一個bash腳本,可以在我的應用程序中運行它。通過我的web應用程序使用sudo運行shell腳本

但是,腳本的某些功能需要超級用戶權限。

什麼是最安全地運行此腳本的最有效的方法?它從Web表單傳遞參數,但只能由經過身份驗證的用戶調用,我相信不會對其發表任何聲明。

回答

2

什麼是安全地運行此腳本最明智的方法是什麼?

如果您確實在乎安全性,則需要Web客戶端提供密碼,並使用ssh密鑰然後運行ssh-agent下的腳本,併爲敏感零件做ssh [email protected] command...。您可能只想爲此創建ssh密鑰對,因爲將一個正常的SSH密碼輸入到Web窗體中並不是我會做的(誰信任您的Web窗體,無論如何?)。

如果你不想相當這麼多的安全,如果你真的相信你的Web表單可以正確驗證它的用戶,沒有任何錯誤,可以轉而決定信任web服務器來運行你需要的命令。 (我不會)。在這種情況下,我將使用/etc/sudoers文件來允許Web服務器在不提供密碼的情況下運行感興趣的命令。然後你的腳本應該使用sudo來運行這些命令。

+0

我用'sudoers'方法 - 我認爲它應該是安全*足夠的*。我正在使用正則表達式來處理所有輸入,並使用一個通用的身份驗證插件,並且覺得這種方法應該沒問題。謝謝 :) – nfm 2010-06-10 06:13:34

4

無論你做什麼這可能是非常危險的。你可以寫一個具有所需特權的本地守護進程,並使用一些生成/使用事件的消息總線來處理這個超級用戶需要的組件?

這樣的話,你可以仔細驗證消息的內容,並減少開發的可能性..

相關問題