2010-11-30 69 views
2

我正在使用smarty在CMS系統上工作。一個CMS系統可以支持多個網站,多個網站,多個模板,多個插件和組件...安全或加密smarty插件

客戶可以使用預先存在的模板註冊並創建他的網站,並選擇組件在該模板上顯示它們。

我的問題是,我如何使這些組件安全或加密。所以如果客戶端將他的站點從服務器移動到另一臺服務器,他將無法使用這些模塊,組件等,或者至少這些會在一定時間後過期。

我將使用smarty創建這些組件插件。

有什麼解決方案在PHP中,聰明?

+0

嗯,這很難 - 因爲PHP是一種解釋型語言,源代碼也是可執行代碼。你*可以*用某種特定於服務器的密鑰加密插件文件並在執行時解密它們,但這會減慢程序的執行速度。我不知道有一個預先構建的解決方案可以動態地實現這個功能(即任何文件)。您希望您的用戶如何在技術上精通?您可以將組件放入服務器可讀取的目錄中,但不能通過CMS訪問。 – Piskvor 2010-11-30 13:09:04

+0

以及我的客戶可能不是那種技術,但將代碼從一臺服務器轉移到另一臺服務器的Web開發人員可能像我們這樣的程序員:)有一些服務器端程序,如ioncube。但我不想走那條路。 – Developer 2010-11-30 13:13:40

回答

0

,而不是試圖以確保文件本身,你可能只是讓這些模板私人:

設置你的PHP環境的include_path私人文件夾,這樣,你的應用程序可以在此文件夾中使用文件,包括模板。 但是,您的用戶無法輕鬆檢索文件。

1

Zend Server提供了這樣的功能。

0

如果你不想使用類似ionCube的PHPEncoder,它可以爲Smarty工作(通過補丁),我建議你編寫一個腳本來執行你的Smarty文件的代碼模糊處理一個真正的煩惱去消除它們。 理想情況下,也會包含變量混淆,但在處理變量到Smarty時,您還需要觸摸PHP文件。

這並不是很好,但正如所說的,當不使用真正的編碼器時,你可以做的事情不多。

0

正如之前提到的Ioncube公司把工作做好,但如果你需要在沒有隱窩或與此類工具尷尬代碼中的一些快速的解決方案,那麼你就需要代碼的東西......我remenber較早前我做了一個樣的工具,我隱藏數據,然後把它放入數據庫中,一段時間後我檢索數據,當然檢查密碼鍵。這是一種方式,但有時它可能會讓你的服務器非常慢,特別是如果你有很多用戶。

好運男人!