Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> IONCube i nadpisywanie konstruktora
hennry
post 5.06.2013, 11:47:10
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.06.2013

Ostrzeżenie: (0%)
-----


Witam

Stworzyłem bibliotekę (pojedyncza klasa) zakodowana IonCube online.
W konstruktorze mam wlasną procedurę "sprawdzającą licencję użytkownika".

Reszta projektu nie jest zakodowana. Aby uniknać ze ktoś poprzez extends nadpisze konstruktor i wyłączy sprawdzanie licencji
mam dwa wyjścia:

1. dac final na moim konstruktorze
2. przenieść weryfikację licencji do głównej metody biblioteki.

Jakie rozwiazanie jest bardziej eleganckie? Teoretycznie w jednej instancji obiektu główną metodę można wywołać wiele razy
więć chyba nie ma sensu, aby za kazdym razem licencję sparwdzać (co troszke trwa) i zrobić to raz w konstruktorze?


Czyżby nikt nie wiedział, czy też moje pytanie było mało sensowne?

Bardzo proszę o cenne wskazówki smile.gif
Go to the top of the page
+Quote Post
Crozin
post 5.06.2013, 13:46:26
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Obiekt można utworzyć bez wywołania konstruktora, a inne operacje niezwiązane ze sprawdzaniem licencji, które mogą się w nim znaleźć najprawdopodobniej dałoby się odwzorować przy pomocy mechanizmu refleksji. IIRC ionCube udostępnia jakieś narzędzia związane z licencjonowaniem, raczej z nich powinieneś skorzystać.

PS. Kod zaszyfrowany ionCubem o ile dobrze pamiętam da się rozkodować do całkiem przystępnej postaci. Może lepiej zainteresuj się jakimś rozwiązaniem opartym o architekturę SaaS?
Go to the top of the page
+Quote Post
hennry
post 6.06.2013, 18:43:55
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.06.2013

Ostrzeżenie: (0%)
-----


Dziękuję za odpowiedź.

Słyszałem, że IONCube jest dość podatny na rozkodowanie, ale jak ktoś się już za to weźmie to znaczy, że jawnie i z "premedytacją" chce
złamać licencje biblioteki.
Tak więc chyba warto zakodować nawet niedoskonałym narzędziem niż zostawić w plain text gdzie ktoś "przez przypadek" mógłby złamać licencję.
Pozostawiam już kwestię czy w ogóle jest sens chronić moją bibliotekę smile.gif

SaaS w tym przypadku odpada i nie chciałbym korzystać z licencjonowania IONCube tylko z własnych metod.

Reasumując
Jak rozumiem warto sprawdzanie licencji dodać w głównej metodzie (bez której biblioteka nie ma sensu), niż w konstruktorze
nawet z "final" bo nawet taki konstruktor się da ominąć przy tworzeniu obiektu?
Go to the top of the page
+Quote Post
Crozin
post 7.06.2013, 14:27:09
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Według mnie tracisz jedynie czas i co gorsza, tworzysz sobie fałszywe poczucie bezpieczeństwa. Wrzucenie zakodowanego fragmentu sprawdzającego licencję oraz ewentualnie wykonującego jakieś inne operacje będzie bardzo łatwe do ominięcia. Wszelkie "modyfikatory" OOP (pola/metody/klasy prywatne, finalne itp.) służą jedynie wygodzie programistów, nie stanowią żadnego zabezpieczenia.

Od lat firmy starają się tworzyć wymyślne zabezpieczenia swoich produktów, a jaki jest rezultat ich zmagań każdy wie. Jeżeli jednak faktycznie chcesz się jakoś zabezpieczyć (czy raczej utrudnić przechwycenie kodu) skorzystaj z rozbudowanych narzędzi firm, które się w tym specjalizują.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 11:15