IonCube czyli zaciemnianie kodu PHP

Artykuł dla programistów PHP, więc jeśli nie wiesz co jest, to lepiej nie czytaj ;)

Jak wszyscy wiemy, aplikacje pisane w PHP to nic innego jak pliki ASCII, które każdy może odczytać i edytować, wystarczy dostęp do FTP. Powoduje to problem, że autorskie rozwiązania mogą w prosty sposób wpaść w ręce nieodpowiednich ludzi. Wyobraźmy sobie system napisany na specjalne zamówienie. Klient dostaje co zamówił, a potem bierze kod źródłowy i grzebie w nim sam, albo zleca to komuś innemu. Można tu zabezpieczyć się umową, ale co z tego, jeśli kod źródłowy można bez problemu fizycznie odczytać i zmieniać.

Ostatnio miałem okazję bawić się programem IonCube PHP Encoder. Krótki opis ze strony polskiego dystrybutora:

ionCube PHP Encoder kompiluje przetwarzane skrypty do postaci binarnej, zrozumiałej dla interpretera PHP a następnie tak powstałe dane binarne koduje. Tak przygotowany skrypt jest całkowicie nieczytelny dla człowieka, a dodatkowo, z racji stosowanej kompilacji, nie zawiera w sobie żadnej pierwotnej wersji źródłowej.

Fajne, ale o co chodzi? Ano chodzi o to, że po zakodowaniu, nasze pliki PHP wyglądają mniej więcej tak:

zakodowany plik PHP

I wciąż działają :) Prawda, że nieczytelne? Prawdę mówiąc nie wiem w jaki sposób jest to kodowane, ani jak można to odkodować samemu. Aby zakodowane pliki PHP działały na naszym serwerze, potrzebny jest zainstalowany moduł ionCube Loader. Jest on bezpłatny, jeśli nasz hosting nie obsługuje tego modułu, dzwonimy do admina!

Takie rozwiązanie chroni nasze autorskie skrypty PHP przed wykorzystaniem ich przez niepowołane osoby i myślę, że to bardzo przydatny program. Oto co jeszcze można zrobić przy pomocy ionCube:

  • Kodowanie i szyfrowanie skryptów
  • Kodowanie dowolnych plikow (HTML, JS etc)
  • Pełne zabezpieczanie skryptów PHP 4 i 5

ionCube PHP Encoder
Dodatkowo droższa wersja PRO posiada bardzo przydatne opcje wprowadzanie ograniczenia czasowego, jak długo ma działać nasz skrypt. Nie zapłaciłeś za projekt w ustalonym terminie? Baj Baj Maszkaro ;)
Dodatkowo możemy wprowadzać ograniczenia na adres IP, domenę, czy generować własne licencje.

Niezwykle przydatne jest określenie które pliki mają być zakodowane, a które nie. Przykładowo pliki konfiguracyjne i zewnętrzne biblioteki mogą zostać niezakodowane, a cała reszta tak. IonCube testowałem na projekcie napisanym w oparciu o framework CakePHP, całość śmiga aż miło.

Ile to kosztuje? Niestety za darmo nie jest. Wersja demo działa 7 dni, a zakodowane nią skrypty przestają działać po 36 godzinach. Wersja PRO to wydatek rzędu 800zł. Dla porównania Zend Guard (Zend Encoder) kosztuje około 600 dolarów.