Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Klasa] Licencja
nasty
post 12.07.2006, 07:35:57
Post #1





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


Wczoraj z nudow napisalem sobie klase, ktora mi (i moze wam) napewno sie przyda na przyszlosc, jest to klasa ograniczajaca dostep do waszej aplikacji. Na podstawie zaszyfrowanego pliku licencyjnego okresla czy aplikacje jest poprawnie licencjowana czy tez nie, dodam jeszcze aby uzyc tek klasy w "prawdziwej" aplikacji to wypadaloby "zendac" (skompilowac,szyfrowac....) bo inaczej to nie bedzie mialo sensu.

Klasa Licensing i License Writer

i Przykladowe zastosowanie

Prosze o opinje i komentarze...

ps. funkcje RC4 to nie ja wymyslilem tongue.gif

Ten post edytował nasty_psycho 12.07.2006, 09:29:53
Go to the top of the page
+Quote Post
NetJaro
post 12.07.2006, 08:23:45
Post #2





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Drobne uwagi:

-> Używaj ' ' zamiast " ";
-> file_get_contents" title="Zobacz w manualu php" target="_manual i file_put_contents" title="Zobacz w manualu php" target="_manual

Ja osobiście mam łatwiejszy sposób - skrypt łączy się z bazą danych i sprawdza w bazie licencje winksmiley.jpg Oczywiście zakodowane to jest ionCube.
Go to the top of the page
+Quote Post
nasty
post 12.07.2006, 08:30:33
Post #3





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


Ja wolalem to zrobic na plikach zeby mialo mniejsze wymagania, i byla mozliwosc przsylania pliku licencyjnego... od tworcy aplikacji do klienta
Go to the top of the page
+Quote Post
Cysiaczek
post 12.07.2006, 09:24:35
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Wniosek: smile.gif
Wydzieliłbym odzielną metodę dla testow, które daleś w ciele konstruktora.
  1. <?php
  2. // checking for correct variables format
  3. if (empty ($productName)) {
  4. throw new Exception("Invalid product name.");
  5. }
  6. if (!is_string($productName)) {
  7. throw new Exception("Invalid product name.");
  8. }
  9. if (empty ($this->licenseFile)) {
  10. throw new Exception("Incorrect license file path");
  11. }
  12. if (file_exists($this->licenseFile)) {
  13. $this->licenseFileExist = true;
  14. }
  15. if (empty ($this->cryptoKey)) {
  16. throw new Exception("Invalid encription key");
  17. }
  18. //------- End of checking ------
  19. ?>


Mam też pewne obiekce w LicenseWriter::WriteLicenseFile()
Ja bym z tego bramkę zrobił na wszelki wypadek, bo może ktos zechce do bazy danych zapisać, albo do XML'a.


Niestety nigdy nie pisałem czegoś takiego, ale wygląda dobrze i może się przydac nie tylko do licencji smile.gif
Moimi narzekaniami się nie przejmuj, bo tak wogóle, to ja bym wszędzie oddzielne typy widział... (boże... jestem psycholem :| )
Pozdrawiam

Ten post edytował Cysiaczek 12.07.2006, 09:24:50


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
kszychu
post 12.07.2006, 10:17:31
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(nasty_psycho @ 12.07.2006, 08:35 ) *
dodam jeszcze aby uzyc tek klasy w "prawdziwej" aplikacji to wypadaloby "zendac" (skompilowac,szyfrowac....) bo inaczej to nie bedzie mialo sensu.

Mając zendenc nie musisz bawić się w osobne klasy. W głównym pliku dajesz normalnie include('licence.php') a w pliku licence.php umieszczasz co tylko ci sie podoba; datę wygaśnięcia, ilość użytkowników, nazwę firmy, itp.
Jeśli wszystkie pliki masz skompilowane, to podsyłasz tylko klientowi co jakiś czas nowy plik z licencją. Ja tak mam zrobione.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
nasty
post 25.07.2006, 14:32:13
Post #6





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


ale majac, eAccelerator, bcompiler, czy jakies obfuskatory to juz trzeba pisac swoje klasy.

pozdrawiam
Go to the top of the page
+Quote Post
mike
post 25.07.2006, 21:07:34
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Może to i ładne ale w 100% bezużyteczne.
Birę twoją aplikację wyrzucam blok try...catch i Twoje zabezpieczenia poszły .... na spacer tongue.gif
Go to the top of the page
+Quote Post
nasty
post 25.07.2006, 21:14:34
Post #8





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


ale napisalem wyraznie, ze zeby to mialo sens to nalezy to nalezy w jakikolwiek sposob zaszyfrowac kod, np. zend ma wbudowany system licencji, ale juz eAccelerator czy bcompiler nie, i tu sie to sprawdza, wkeljasz try, catch na poczatek skryptu, kodujesz i program zabezpieczony
Go to the top of the page
+Quote Post
mike
post 25.07.2006, 21:22:38
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(nasty_psycho @ 25.07.2006, 22:14 ) *
ale napisalem wyraznie, ze zeby to mialo sens to nalezy to nalezy w jakikolwiek sposob zaszyfrowac kod, np. zend ma wbudowany system licencji, ale juz eAccelerator czy bcompiler nie, i tu sie to sprawdza, wkeljasz try, catch na poczatek skryptu, kodujesz i program zabezpieczony

To znaczy że Twój system zabezpieczeń działa tylko w już wcześniej zabezpieczonych skryptach, tak? laugh.gif LOL
Go to the top of the page
+Quote Post
nasty
post 25.07.2006, 21:25:23
Post #10





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


zabezpiecza przed kopiowaniem, a nie podgladem zrodla.
Z nazwy mozna to wywnioskowac winksmiley.jpg

ps. czy kiedys probowales ochronic swoj program przed kradziejstwem? samo szyfrowanie nic nie da, i tak bedzie wszedzie dzialac, a ta klasa ma temu zapobiec. w przyszlosci jeszcze moze dodam walidacje na podstawie sprzetu... ale to tylko bajer.

Ten post edytował nasty_psycho 26.07.2006, 07:53:44
Go to the top of the page
+Quote Post
mike
post 25.07.2006, 21:27:50
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(nasty_psycho @ 25.07.2006, 22:25 ) *
zabezpiecza przed kopiowaniem, a nie podgladem zrodla.
Z nazwy mozna to wywnioskowac winksmiley.jpg

No wiem przecież, ale skoro to działa tylko na zaszyfrowanych, to przecież równie skuteczne będzie:
  1. <?php
  2.  
  3. $strTajnaLicencja = 'ok'
  4.  
  5. if( $strTajnaLicencja === 'ok' )
  6. {
  7. echo 'działa';
  8. }
  9. else
  10. {
  11. echo 'nie działa';
  12. }
  13.  
  14. ?>

i bedzie dużo szybciej tongue.gif
Go to the top of the page
+Quote Post
nasty
post 25.07.2006, 21:33:24
Post #12





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


hehehehe, LOL biggrin.gif
szybciej to moze i tak, ale jak to nic nie robi, bo jaki wtedy ma sens miec prawidlowy serial, i gdzie go bedziesz trzymac? mike_mech, widac ze nie lapiesz co robi ta klasa, na google napisz "Software licensing system" , poszperaj a dokladniej sie zorientujesz.
Programy skompilowane, w ktorych nie mozna source podgladac, tez maja takie systemy w ktorych mosisz wpisac poprwany serial.
albo ewentualnie poczytaj Temat: zabezpieczenie kodu przed kopiowaniem

Ten post edytował nasty_psycho 25.07.2006, 21:36:38
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: 13.07.2025 - 11:34