PHP代碼保護——Zend Guard

來源:互聯網
上載者:User
Zend Guard的作用,就是用編譯處理的方式來保護PHP原始碼免於被反編譯查看、未經授權的定製修改、未經許可的使用和重新發布等。而且,它是PHP的東家Zend公司開發的,是完全為PHP量身定做的保護神。 
  下面,請大家就和我一起來學習使用Zend Guard,加密保護我們的PHP原始碼吧。 
   
  實戰:加密PHP原始碼 

  下載:http://www.zend.com/en/products/guard/

接下來讓我們準備一個簡單的PHP程式test.php,用來測試能否被Zend Guard保護起來。test.php的代碼如下:

    <?php
    phpinfo(); 
  ?> 
  開啟Zend Guard,從File(檔案)菜單點擊,建立一個項目,1所示。點擊Next進入目錄和檔案添加介面,因為我們只是測試一個檔案,所以點Add File將test.php添加進來,再點擊Finish(完成)即可產生項目。 
   
  這時,Zend Guard會自動開啟建立立的項目,在介面的左邊列出項目中的檔案,右邊列出項目的相關資訊。現在,我們就可以將原始碼編譯了。點擊右邊Links(連結)中的Encode(編譯),介面最下面的Console(控制台)視窗顯示“The operation has completed successfully.”,意思為編譯已經完成。 
  現在再去加密後檔案儲存的目錄中,會看到其中也有一個test.php,它是否和原來的test.php一樣呢?用編輯軟體開啟它,可以看到它不再是原來的內容了,2所示。注意:自己一定要儲存好原始代碼,不然丟失了,連你自己也沒有辦法查看和修改的。 
   
  接下來測試一下加密的代碼,從瀏覽器訪問加密後的PHP程式,哎呀,出錯了,不能運行,並顯示3所示的資訊。原來,使用Zend Guard加密後的PHP程式,還需要一個搭檔—Zend Optimizer,才能正常執行並提升效率。可從http://www.zend.com/en/products/guard/下載安裝。安裝過程中,“Choose the php.ini folder”這一步表示設定系統上PHP的設定檔php.ini的位置,“Choose the Web server's root folder”這一步表示設定Web伺服器軟體所在的位置。安裝完成以後,用記事本開啟php.ini,在最後我們會看到類似下面的配置資訊: 
   
  [Zend] 
  zend_extension_manager.optimizer_ts="E:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0" 
  zend_extension_ts="E:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll" 
  這就表示Zend Optimizer已經安裝成功了,我們可以重新啟動Web伺服器軟體,讓Zend Optimizer生效即可。注意:如果所使用的伺服器已經安裝過或者包含了Zend Optimizer,就不用再次安裝了。 
  現在再次從瀏覽器訪問加密後的PHP程式試試,果然可以正常運行了,從顯示的資訊中,我們可以看到Zend Optimizer的資訊(見圖4)。 
   
  解析Zend Guard加密原理 
   
  讓我們看看流程,就可以對Zend Guard的保護原理一目瞭然了。通過Zend Guard將PHP原始碼編譯為加密代碼,然後通過載入了Zend Optimizer的PHP執行即可。分發給別人的程式,是加密後的代碼,可以執行,但是沒有原始碼,別人也就無法查看和修改了。因而,我們可以在程式中加入適當的代碼,用來檢測系統的目前時間,看是否超過了預先設定的期限,如果超過了,就退出程式不讓繼續執行。 
   
  Zend Guard的工作原理和Java類似,編譯後的PHP程式就像編譯好的Java二進位代碼,需要JVM的支援才能運行,Zend Optimizer可以看作是PHP的虛擬機器。Zend Guard與Zend Optimizer相互配合,就能完成編譯加密和執行編譯後代碼的工作。 
  License管理的方面屬於更為深層的使用,可以用來產生許可檔案,從而通過選擇不同的許可模式來限制程式的使用,例如同時使用的使用者數、時間限制、網路分段或者特定的伺服器等。有興趣的讀者可以查看Zend Guard自身所帶的協助檔案,來瞭解具體的用法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.