2013-08-01 102 views
1

我負責安裝和管理由外部開發人員編寫的webapp。是一張空白的Security.cipherSeed好嗎?

我對CakePHP不熟悉,開發人員指示我將Security.cipherSeed作爲空白字符串留在core.php中。這可以接受嗎?

我問,因爲我一直在翻閱代碼,而且我對開發人員的編碼缺乏信心。

只有這樣做才能通過HTTPS訪問web應用程序。

+0

它仍然在任何地方使用?他對鹽價說什麼?這聽起來像是故意不必要地削弱了安全性,但我無法確切地說。你可能應該問開發商他爲什麼認爲它應該是空白的。 – Gray

+0

發現它(當前)在代碼庫中未使用。無論如何,我正在推動這款應用。我閱讀的代碼越多,就越容易獲得。 – wbg

回答

1

那麼,這值可用於srand()(使用Security::cipher時,更新:注意Cookie的組件目前默認使用Security::cipher加密/解密餅乾/更新),傳遞一個空字符串可能觸發警告,說參數1預計會很長而不是字符串。

此外,這將導致一個隨機種子由PHP自動生成,這將使解密文本使用Security::cipher()加密不可能(或者讓我們說至少有點複雜)。因此,如果PHP安裝或CakePHP源未被修改,以致任何一個srand()都會自動使用靜態種子(這將非常糟糕),或者Security::cipher會從其他地方獲取種子(也是一個壞主意),那麼即使你還沒有使用Security::cipher,你也可能不應該留下空白。儘管實際上你不應該使用Security::cipher,但它已經被棄用了,但是定義一個值但是尚未使用它應該不會造成任何傷害,不會定義一個值並嘗試使用它。

爲了確保一切正常,請檢查源代碼是否使用Security::cipher,如果是這樣的話,請圍繞其使用編寫一些測試以確保一切正常。也請嘗試聯繫開發人員,並問他爲什麼認爲它應該留空,也許有一些隱藏的魔術正在進行,誰知道...

簡而言之,如果Security::cipher不使用,並且絕對不會使用,那麼它應該沒問題,把它留空或用你最喜歡的詩填寫它,這應該沒關係,如果它使用或者你打算使用它,那麼不要把這個值留空,或者甚至更好如果可能的話,使用Security::rijndael()代替。

+0

請注意,它也將在未來版本中刪除:https://github.com/cakephp/cakephp/pull/1464 – mark

+0

很好的答案。目前尚未使用,我已決定分解代碼庫,因爲我發現作者實現用戶組的想法是簡單地隱藏組不應該訪問的功能的鏈接。如果他們知道該網址,但是... – wbg

相關問題