2014-05-12 46 views
1

在我的情況下,我試圖在當前需要使用php 5.3的服務器上使用作曲家軟件包「jeremykendall/password-validator」 .3-7 + squeeze19。PHP作曲家,在5.3.3-7 + squeeze19上使用指定5.3.7的軟件包

但是這個lib需要php 5.3.7。

有關如何解決此問題的任何想法?或測試它是否有效?

我在想我可以fork lib來測試,但有沒有人知道任何作曲家功能,可以幫助在這裏?

回答

0

問題庫有一個測試套件。只需在你的5.3.3盒子上運行它的測試,如果他們工作,你可以更有信心使用它。

我會推測他們可能不會:作者必須有一個很好的理由來指定特定版本的PHP。 5.3.7中可能存在一部分庫所依賴的錯誤修正。

在這種情況下,我建議您編寫幾個自己的單元測試,以確保使用該庫的代碼部分仍可在該環境中工作。

+0

感謝@ bcmcfc,我正要嘗試這個,但接下來的其他答案進來解釋說,我不應該因爲php的bug而打擾這個用例。但是我將其標記爲正確的答案,因爲在其他情況下,檢查一個庫是否可以工作,這是正確的方法,謝謝! – stilliard

+0

實際上,這個答案建議「嘗試運行測試,如果他們測試PHP bug或功能,他們希望會失敗,然後......」 - 您仍然無法使用Composer添加庫,並且您必須希望測試覆蓋錯誤或功能。我更喜歡其他答案。 – Sven

+0

@即使問題問「我該如何解決這個問題,或測試它是否有效」。由於它不能得到解決,後者至少可以得到回答。 – bcmcfc

3

我懷疑的要求,原因是相同ircmaxell's more famous password_compat library

要求

此庫要求PHP >= 5.3.7或具有$2y 修復移植入它的版本(如RedHat提供)。請注意,Debian的 5.3.3版本是不支持

由於此版本問題,運行時檢查已被刪除。要查看 如果password_compat可用於您的系統,請運行附帶的 version-test.php。如果它輸出「Pass」,則可以安全地使用 庫。如果沒有,你不能。

如果您嘗試在不支持的版本上使用password-compat, 會嘗試創建或驗證散列將返回false。你一直在 警告!

原因是5.3.7之前的PHP包含一個security issue with its BCRYPT implementation。 因此,強烈建議您在使用此圖層之前升級到PHP的更新版本 。

這聽起來像你的5.3.3版本則有反向移植修復(基於它看起來基於Debian,確認自己是否修復已專門回遷到您的版本或沒有),讓您真正不應該在5.3.3上運行此代碼(或任何基於bcrypt的代碼),因爲它可能會使您面臨實際的安全漏洞。

+0

謝謝@deceze,我沒有看到這件事。我會離開,直到這個舊的服務器可以升級。 – stilliard

+0

@stilliard:這是正確的答案。我的lib實際上只是password_compat的一個便捷包裝,所以這些要求是我的要求。 –

+2

嗨@Jeremy Kendal,這是基於使用這個lib的正確答案特異性。我把它標記爲另一個,儘管主要是因爲我想用另一個答案去掉其他庫,所以如果有人根據問題名稱來到這裏,另一個答案似乎更合適。 雖然我可以隨時編輯問題描述,但是要更通用一些。 – stilliard