Najlepsze rozwiązanie do ochrony kodu PHP bez szyfrowania
Po pierwsze, nie szukam cudu... Wiem, jak działa PHP i że nie ma sposobu, aby ukryć mój kod przed klientami bez użycia szyfrowania. Ale wiąże się to z kosztem rozszerzenia, które ma być zainstalowane na działającym serwerze.
Szukam jednak czegoś innego... Nie chcę szyfrować mojego kodu ani nawet go zaciemniać. Istnieje wiele skryptów PHP bez zaszyfrowanego / zaciemnionego kodu, ale są to aplikacje komercyjne. Na przykład vBulletin i / lub IP.Aplikacje na forum forum.
Chcę tylko wiedzieć, jakie podejście stosują ci faceci do swoich zastosowań...
Jestem również otwarty na wszelkie inne sugestie.
Proszę pamiętać, że jestem osobą samotną i nie pracuję dla firmy. Mój produkt jest również bardzo specyficzny, nie sprzeda się tak dużo. Chcę, żebyście wiedzieli, że nie mogę sobie pozwolić na konsultację z prawnikiem, albo na pozew, albo przygotowanie licencji. Szukam tylko prostego sposobu na ochronę mojego prostego produkt, jeśli jest to rzeczywiście możliwe, w jakiś sposób...
11 answers
Zaciemnianie rzeczy może tylko sprawić kłopot Twoim prawowitym, przestrzegającym prawa klientom, podczas gdy ludzie, którzy by cię okradli, nie są twoimi docelowymi płatnymi klientami. (edytował inne myśli o zaciemnianiu)
Kolejna propozycja ochrony Twojego oprogramowania: stwórz model biznesowy, w którym kod jest niepełną częścią wartości Twojej oferty. Na przykład sprzedawaj licencje produktów wraz z dostępem do niektórych danych, którymi zarządzasz w witrynie, lub licencjonuj produkt w modelu subskrypcji lub z obsługą klienta.
Projektowanie EULA jest sprawą prawną, a nie sprawą kodowania. Możesz zacząć od przeczytania tekstu EULA dla produktów i stron internetowych, których używasz. Możesz znaleźć kilka ciekawych szczegółów!
Tworzenie licencji własnościowej jest bardzo elastyczne i prawdopodobnie jest to temat wykraczający poza zamierzony zakres StackOverflow, ponieważ nie chodzi wyłącznie o kodowanie.
Niektóre części EULA, które przychodzą na myśl:
- ograniczanie twojego odpowiedzialność, jeśli produkt ma błędy lub powoduje uszkodzenia.
- określenie, w jaki sposób klient może korzystać z licencjonowanego oprogramowania, przez jak długo, na ilu komputerach, z prawami do redystrybucji lub bez nich itp.
- daje Ci prawo do audytu ich strony, abyś mógł wyegzekwować licencje.
- co się stanie, jeśli naruszą umowę EULA, np. utracą uprawnienia do korzystania z oprogramowania.
Należy skonsultować się z prawnikiem, aby przygotować reklamę EULA.
Edit: Jeśli ten projekt nie może uzasadnić kosztów prawnika, sprawdź te zasoby:
- "porady EULA " na joelonsoftware
- "Jak napisać umowę licencyjną użytkownika końcowego "
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-03 03:13:49
Musisz wziąć pod uwagę swoje cele:
1) czy próbujesz uniemożliwić ludziom czytanie / modyfikowanie Twojego kodu? Jeśli tak, będziesz potrzebował narzędzia do maskowania/szyfrowania. Używałem Zend Guard z dużym powodzeniem.
2) próbujesz zapobiec nieautoryzowanej redystrybucji kodu?? EULA / licencja własnościowa da ci moc prawną, aby temu zapobiec, ale nie powstrzyma tego. Schemat klucza / aktywacji pozwoli na aktywne monitorowanie użycie, ale można je usunąć, chyba że zaszyfrujesz swój kod. Zend Guard ma również możliwość zablokowania konkretnego skryptu na konkretnej maszynie klienta i / lub tworzenia ograniczonych czasowo wersji kodu, jeśli tego chcesz.
Nie jestem zaznajomiony z vBulletin i tym podobne, ale oni albo muszą szyfrować / zaciemniać lub ufać swoim użytkownikom, aby zrobić właściwą rzecz. W tym drugim przypadku mają one ochronę w postaci umowy EULA, która zakazuje zachowań, które uznają za niepożądane, oraz system prawny w celu zabezpieczenia naruszeń EULA.
Jeśli nie jesteś przygotowany/w stanie podjąć działań prawnych w celu ochrony swojego oprogramowania i nie chcesz szyfrować/zaciemniać, możesz: A) wydać go za pomocą EULA, więc masz legalną opcję, jeśli kiedykolwiek będziesz go potrzebować i mieć nadzieję na najlepsze, lub B) rozważyć, czy licencja open source może być bardziej odpowiednia i po prostu pozwolić na redystrybucję.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 01:29:38
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-08 09:11:08
Od jakiegoś czasu nie patrzyłem na kod źródłowy VBulletin, ale sposób, w jaki robili to około 2003 roku, polegał na osadzeniu połączenia na ich serwerze w kodzie. IIRC, to było na bardzo długiej linii kodu (np. 200-300 + znaków) i zostało podzielone na kilka konkatenacji łańcuchów itp.
Nie zrobił nic "złego" jeśli to pirackie-forum nadal działa w 100%. Ale IP Twojego serwera został zarejestrowany wraz z innymi informacjami i użyli go do zbadania i podjęcia działań prawnych.
Twój numer licencji został wbudowany w to połączenie, aby mogli łatwo śledzić, na ilu adresach IP / witrynach działa dana licencjonowana Kopia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-03 03:08:57
Jeśli nie możesz utworzyć" aplikacji w chmurze", którą hostujesz i która uzyskuje dostęp przez Internet, możesz rozważyć utworzenie urządzenia wirtualnego przy użyciu serwera wirtualnego (z VMWare, Parallels, Sun itp.) i zainstalować na tym "lite" wersję Linuksa. Umieść swój kod PHP w środowisku wirtualnym i zainstaluj maszynę wirtualną na ich serwerze. Upewnij się, aby utworzyć sposób, aby zapobiec załadowaniu do roota. Oczywiście wymagałoby to fizycznej wizyty u klienta.
Dystrybuują swoje oprogramowanie na zastrzeżonej licencji. Prawo chroni ich prawa i uniemożliwia ich klientom redystrybucję źródła, chociaż nie ma rzeczywistych trudności z tym.
Ale jak zapewne wiecie, naruszenie praw autorskich (piractwo) oprogramowania jest dość powszechnym zjawiskiem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-03 02:17:07
Moim zdaniem jest, ale na wszelki wypadek jeśli twój program z kodem php jest napisany dla samodzielnego modelu... najlepszym rozwiązaniem jest c) można by zawinąć php w kontener typu Phalanger (. NET). jak każdy wie, jest ściśle związany z systemem, zwłaszcza jeśli program jest przeznaczony dla użytkowników windows. możesz po prostu stworzyć własny algorytm ochrony w języku programowania windows, takim jak. NET / VB / C # lub cokolwiek wiesz w.NET prog.lang.zestawy rodzinne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-29 17:23:53
Jedynym sposobem, aby naprawdę chronić swoje aplikacje php przed innymi, jest nie udostępniać kodu źródłowego. Jeśli umieścisz kod gdzieś w Internecie lub wyślesz go do swoich klientów za pomocą jakiegoś medium, inne osoby niż ty mają dostęp do kodu.
Możesz dodać unikalny znak wodny do każdej kopii kodu. W ten sposób wyśledzisz przecieki do pojedynczego klienta. (Ale czy to ci pomoże, skoro kod jest poza Twoją kontrolą?)
Większość kodów jakie widzę pochodzi z licencji i może gwarancja. Linia na górze skryptu mówi ludziom, aby nie zmieniali skryptu, być może wystarczy. Self; kiedy znajdę nie-otwarty kod źródłowy, Nie będę go używał w moich projektach. Może jestem trochę oszukany, ale oczekuję, że ppl nie użyje mojego kodu none-OSS!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-03 23:49:57
Zend Guard nie obsługuje php 5.5 i jest łatwy do odwrócenia, przejdź do http://www.ioncube.com do zaciemniania. http://wwww.phplicengine.com może licencjonować Skrypty zdalnie lub lokalnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-01 06:47:46
Zobacz nasz SD PHP Obfuscator. Obsługuje ogromne systemy plików PHP. Brak wymagań runtime na serwerze PHP. Brak dodatkowych kosztów związanych z uruchomieniem.
[edytuj Maj 2016] Ostatnia odpowiedź zauważyła, że Zend nie obsługuje PHP5. 5. SD PHP Obfuscator robi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-28 16:16:43
Więc zobaczmy, chcemy pokazać Adamowi i Ewie, że na drzewie jest jakiś zakazany owoc, a my chcemy zapobiec ich jedzeniu...
A może anioł z płonącym mieczem?
Może zabrzmieć naiwnie i nie wiem, co właściwie robi Twoja aplikacja, ale co z szerokim wykorzystaniem obejmuje?
-
Czy dla uprawnionego użytkownika całe oprogramowanie powinno być widoczne, czy tylko jego części? Ponieważ możesz zaciemnić i dać kopię kod źródłowy do legalnego
-
Możesz zawinąć php w kontener taki jak Phalanger (. NET)
-
Być może jesteś zainteresowany kradzieżą zewnętrzną, co oznacza, że Twój kod jest swobodnie widoczny w Internecie, gdy klienci go używają. Może to być warte zainwestowania w tani hosting strony internetowej, za $50 rocznie, rejestrując swoich legalnych klientów z seryjnym kodem i regularnie umieszczając informacje o aplikacji na swojej stronie internetowej. Przynajmniej wykryłbyś, kiedy Kod został naruszony. Ty może spowodować samozniszczenie po n dniach, dając ci wystarczająco dużo czasu, aby skontaktować się z klientem i zmienić serial. To może być tylko zaciemnione include () całego kodu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-01 01:33:01