2010-04-20 69 views
3

如果我使用mechanize,我可以爲網站創建一個新的Google Analytics(分析)配置文件。我通過以編程方式填寫登錄表單並將cookie存儲在數據庫中來完成此操作。然後,至少在cookie過期之前,我可以訪問我的分析管理面板,而無需再次輸入我的用戶名和密碼。是否將Cookie存儲在數據庫安全中?

假設您不能以任何其他方式創建新的分析配置文件(使用OpenAuth或任何其他方式,我認爲它不適用於實際創建新的Google Analytics配置文件,Analytics API用於查看數據,但我需要創建一個新的分析配置文件),將數據庫中的cookie存儲爲壞事?

如果我將cookie存儲在數據庫中,它可以非常方便地以編程方式登錄到Google Analytics,而無需用戶訪問瀏覽器(也許該應用具有「用戶」功能,您可以安排鉤子爲您創建的每個新域創建一個新的分析配置文件,只需輸入一次您的憑證,我們將保持登錄並安全「)。否則,我必須繼續轉移看起來更糟的電子郵件和密碼。

那麼存儲cookies數據庫安全嗎?

回答

0

首先,這是一個有缺陷的方法,因爲經過身份驗證的會話最終會過期,並且您與Google的連接將被中斷。此外,您應該使用Google Analytics API

但是, 存儲數據庫中的會話ID是INSECURE。

這不是公認的漏洞,至少不是我所知道的。但它使更容易攻擊你的應用程序。 SQL注入非常普遍,您應該設計您的應用程序以限制任何給定漏洞帶來的影響。這就是密碼被哈希的原因,因爲它延緩了攻擊者獲得完全的妥協。存儲會立即使用的會話標識符會使SQL注入漏洞更加嚴重。

我不確定你在哪個平臺上,但我會假設你在使用Linux,因爲你關心安全:)。我建議將用戶名/密碼存儲在一個文件中。您應該調整文件的權限,如chmod 700 file_name,並確保該文件屬於您的網絡服務器:chown apache:apache file_name。如果您使用MySQL,請確保您從ruby應用程序的用戶帳戶中刪除file_priv(文件特權)。文件特權真的很討厭,因爲它允許攻擊者通過sql注入來讀寫文件。

+0

加1 - 永遠不會將會話ID存儲在數據庫中 - 這是帳戶接管的快捷方式。 – rook 2016-05-25 22:43:09

相關問題