2012-02-17 171 views
3

我在我的php應用程序中使用亞馬遜網絡服務。將鏈接到我的php web服務的config.php文件中的祕密aws訪問令牌存儲起來是否安全?在php文件中存儲密鑰

我一直無法下載文件來查看內容,但不可能使用數據包嗅探器或其他東西,並且能夠讀取密鑰並通過短語?

我知道亞馬遜建議使用令牌自動販賣機來創建臨時憑證,而不是直接使用aws信用卡,但我們希望能夠跳過實施。

回答

1

除非你的config.php文件在運行時會輸出令牌,否則你應該是安全的。要採取額外的預防措施,您可以將config.php文件放置在網站的根目錄下,以便用戶甚至無法嘗試運行該文件。

您的php正在服務器上執行,只要沒有輸出發送到包含令牌的客戶端,該文件的內容將永遠不會發送到客戶端。因此,他們將無法讀取文件,因爲內容永遠不會離開服務器,只是運行腳本的輸出。

1

不可以,因爲只有在服務器端運行腳本之前,腳本才能將內容傳遞到客戶端。

唯一可能的違約是如果有人侵入服務器本身,並從文件系統偷取文件。

+0

最成功的攻擊都是在服務器上。 – zaph 2016-07-21 15:00:22

3

在「下載PHP文件」方面,Apache會阻止這種情況的發生,但是您應該將PHP文件存儲在文檔根目錄之外,這樣一開始就不能訪問網頁(並且需要( )如果需要,它在服務器端)。

就「數據包嗅探」而言,安全連接可防止發生這種情況。只要確保你使用的是HTTPS。

-1

除了上述建議(將您的配置存儲在網站的公共目錄之外),它是一種很好的技術來加密您的密碼/祕密,而不是將它們作爲純文本存儲在任何地方(特別是使用非php文件進行存儲時密碼,如.env*.yml等)。這是很容易通過網絡服務器的配置錯誤揭露脆弱的數據,commiting到Github上等

這方面的更多閱讀:https://blog.fortrabbit.com/how-to-keep-a-secret

+0

你會在哪裏安全地保存加密密鑰? – zaph 2016-07-20 12:24:49

+0

@zaph由於存儲在相同的代碼庫(顯然不在同一個配置文件中),所以不可能絕對安全地存儲加密密鑰。這種技術更加模糊而不是真正的加密,但正如我所說的,可以防止服務器配置錯誤等情況下泄露祕密。 – elena 2016-07-21 20:47:17