Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Weryfikacja domeny
DannyM
post 25.05.2009, 12:17:30
Post #1





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Czy da sie jakos zabezpieczyc skrypt weryfikujac domene?
Moze zakodowac jej nazwe w bazie i potem sprawdzac?
Go to the top of the page
+Quote Post
kkuba
post 25.05.2009, 12:20:30
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 6.07.2008
Skąd: Nowy Sącz

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


Można.
Ale nie ma bata, żeby tego nie usunąć.

No chyba, że laikowi dajesz skrypt : )
Go to the top of the page
+Quote Post
pgrzelka
post 25.05.2009, 12:21:27
Post #3





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


jedyne rozwiązanie to zakodowanie skryptu np Ioncube lub zend optimizer


--------------------
Go to the top of the page
+Quote Post
DannyM
post 25.05.2009, 12:25:31
Post #4





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


to to juz czytalem ale jak by tak dla laika zakodowac md5 domene i potem sprawdzac?
no chyba, ze macie inne pomysly
Go to the top of the page
+Quote Post
kkuba
post 25.05.2009, 12:33:51
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 6.07.2008
Skąd: Nowy Sącz

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


Pomysł może i dobry, ale każdy, kto podstawy zna, poradzi sobie z usunięciem jednego if'a.

Wg. mnie.. jeśli chcesz coś tylko dla siebie - nie rozdawaj ; )
Go to the top of the page
+Quote Post
pgrzelka
post 25.05.2009, 13:52:04
Post #6





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


jak laik to zakoduj base64, potem zdekoduj, i wykonaj eval()

możesz też zakodować coś takiego

if ($domena != 'dozwolonadomena') {
mail(twoj@mail, 'naruszenie', 'klient umiescil skrypt na innej domenie');
}

Ten post edytował pgrzelka 25.05.2009, 13:53:34


--------------------
Go to the top of the page
+Quote Post
DannyM
post 25.05.2009, 14:12:15
Post #7





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Wlasnie to staram sie zrobic ale nie wycgodzi mi sprawdzanie smile.gif

  1. <?php
  2. $uni = "http://localhost:8888/";
  3.  
  4. $sha1a =  base64_encode($uni);
  5. echo ("Domena:  " . $sha1a . "\n");
  6.  
  7. if (  base64_decode($sha1a) == "http://localhost:8888/" ) { echo " > wszysklo gra";} else {echo "Blee";}
  8. ?>

Tak wygladaja moje wypociny i nie dzialaja
Juz wiem "sha1"
Teraz gra winksmiley.jpg

Ten post edytował DannyM 25.05.2009, 14:19:58
Go to the top of the page
+Quote Post
deirathe
post 25.05.2009, 14:52:53
Post #8





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

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


Ja przez pewien czas, miałem jeden plik biblioteczny z klasami podstawowymi, który był zakodowany basem z dodatkowo z moim małym ulepszeniem tongue.gif. Skrypt na serwerze klienta ściągał pliczek z mojego serwera, pobierał dodatkowo numer, który był potrzebny do odkodowania biblioteki. Jeżeli domena z której pobierany był numer różniła się od tej które miałem zapisane w dozwolnych, to klient dostawał paczkę której nie można było odkodować.
Jeżeli ktoś by się napocił to można to obejść zawsze, ale na laików dobre zabezpieczenie. Jedyny ból że spowalnia to aplikacje u klienta.


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post
phpion
post 25.05.2009, 15:01:42
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(DannyM @ 25.05.2009, 15:12:15 ) *
Wlasnie to staram sie zrobic ale nie wycgodzi mi sprawdzanie smile.gif

  1. <?php
  2. $uni = "http://localhost:8888/";
  3.  
  4. $sha1a =  base64_encode($uni);
  5. echo ("Domena:  " . $sha1a . "\n");
  6.  
  7. if (  base64_decode($sha1a) == "http://localhost:8888/" ) { echo " > wszysklo gra";} else {echo "Blee";}
  8. ?>

Tak wygladaja moje wypociny i nie dzialaja
Juz wiem "sha1"
Teraz gra winksmiley.jpg

Pozwól, że "obejdę" Twój skrypt. Cokolwiek nie dasz w warunkach mogę go bardzo prosto "złamać":
  1. <?php
  2. $uni = "http://localhost:8888/";
  3.  
  4. $sha1a =  base64_encode($uni);
  5. echo ("Domena:  " . $sha1a . "\n");
  6.  
  7. //if (  base64_decode($sha1a) == "http://localhost:8888/" ) { echo " > wszysklo gra";} else {echo "Blee";}
  8. ?>

guitar.gif
Go to the top of the page
+Quote Post
DannyM
post 25.05.2009, 15:11:24
Post #10





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


hehe no tak ale nie tak prosto bedzie winksmiley.jpg
Tu tylko chcialem zrozumiec jego dzialanie biggrin.gif
No i jeszcze jedna sprawa trzeba wiedziec w calym kodzie co wylaczyc winksmiley.jpg

Ten post edytował DannyM 25.05.2009, 15:11:55
Go to the top of the page
+Quote Post
vokiel
post 25.05.2009, 21:24:18
Post #11





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Jeżeli sprawdzanie warunków będzie u klienta, to musisz chociażby funcje, zmienne ponazywać jakoś inaczej dla zmylenia. Ukryć to w wielu miejscach.

Jeśli nie chcesz szyfrować, to zrób coś na wzrór deirathe. Na swoim serwrze umieszczasz jakąś najważniejszą część swojej aplikacji, taki rdzeń. W skrypcie odwołujesz się do serwera, ale nie tak, że sprawdzasz czy dany id ma dostęp czy nie, tylko pobierasz skrypt, i go evalem wykonujesz u klienta.

Czyli coś na zasadzie eval(file_get_contents('http://check.twojadomena.pl?key=242h2k34hj2h3k2h'));

Pozdrówki


--------------------
Go to the top of the page
+Quote Post
DannyM
post 26.05.2009, 06:55:05
Post #12





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(vokiel @ 25.05.2009, 22:24:18 ) *
Jeżeli sprawdzanie warunków będzie u klienta, to musisz chociażby funcje, zmienne ponazywać jakoś inaczej dla zmylenia. Ukryć to w wielu miejscach.

Jeśli nie chcesz szyfrować, to zrób coś na wzrór deirathe. Na swoim serwrze umieszczasz jakąś najważniejszą część swojej aplikacji, taki rdzeń. W skrypcie odwołujesz się do serwera, ale nie tak, że sprawdzasz czy dany id ma dostęp czy nie, tylko pobierasz skrypt, i go evalem wykonujesz u klienta.

Czyli coś na zasadzie eval(file_get_contents('http://check.twojadomena.pl?key=242h2k34hj2h3k2h'));

Pozdrówki

Dzieki za podpowiedz a czy takie odwolanie nie spowoduje duzego ruchu na serwerze?
Jesli np. do danego pliku odwola sie 100 klientow w ciagu godziny czy mocno obciazy to serwer?
Go to the top of the page
+Quote Post
nospor
post 26.05.2009, 07:01:31
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale przeciez odwolywanie sie do serwera po "rdzen" to takie same "zabezpieczenie" co walenie ifow w roznych miejsach kodu. Mozna je tak samo latwo obejsc. wystarczy raz zciągnąc ten "rdzen", zapisac do pliku i nastepnym razem siorbac juz z pliku a nie z serwera. - zabezpieczenie nie dosc ze tak samo latwe do obejscia co poprzednie, to na dodatek bedzie tylko przymulac i aplikacje, i serwer kolesia co zrobil projekt.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wNogachSpisz
post 26.05.2009, 08:54:43
Post #14





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Zrob tak, zeby twoj soft byl latwy do znalezienia w google, np. specyficzne URLe, specyficzne intext. Potem raz na jakis czas przelecisz wujaszka G i sprawdzisz czy ktos nie korzysta z Twojego softu na niedozwolonej domenie.
Go to the top of the page
+Quote Post
DannyM
post 26.05.2009, 09:02:59
Post #15





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(wNogachSpisz @ 26.05.2009, 09:54:43 ) *
Zrob tak, zeby twoj soft byl latwy do znalezienia w google, np. specyficzne URLe, specyficzne intext. Potem raz na jakis czas przelecisz wujaszka G i sprawdzisz czy ktos nie korzysta z Twojego softu na niedozwolonej domenie.

hehe super pomysl smile.gif
Choc wateków podobnych jest kilka to ten jest świeży i zaczyna sie rozkrecac winksmiley.jpg

Ten post edytował DannyM 26.05.2009, 09:03:51
Go to the top of the page
+Quote Post
vokiel
post 26.05.2009, 11:15:21
Post #16





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Cytat(nospor @ 26.05.2009, 08:01:31 ) *
No ale przeciez odwolywanie sie do serwera po "rdzen" to takie same "zabezpieczenie" co walenie ifow w roznych miejsach kodu. Mozna je tak samo latwo obejsc. wystarczy raz zciągnąc ten "rdzen", zapisac do pliku i nastepnym razem siorbac juz z pliku a nie z serwera. - zabezpieczenie nie dosc ze tak samo latwe do obejscia co poprzednie, to na dodatek bedzie tylko przymulac i aplikacje, i serwer kolesia co zrobil projekt.

A no racja, tyle, że musi się pojawić pierwszy ktoś, kto kupi skrypt i go udostępni.
Jest jeszcze opcja, żeby robic buildy dla każdego klienta indywidualne, w których jakieś funkcje będą się inaczej nazywały, a pobrana treść z serwera, wywoływana evalem będzie się do nich odnosić. Co prawda to i tak jest do obejścia, ale ciut utrudni dry.gif

Specyficzne URL'e to jest jakiś sposób, bo może komuś nie będzie się chciało przerabiać skryptu.

Wyrzucenie ifa, czy unikalnego znacznika jest zawsze do zrobienia. Moża próbować zamotać tak kod, żeby się komuś nie chciało grzebać i szukać, ale jeśli ktoś użyje jakiegoś IDE to z tym też w miarę szybko sobie poradzi.

Tak czy inaczej, jeśli kod nie jest zaszyfrowany, to zawsze jest możliwość jego edycji i ominięcia zabezpieczeń.


--------------------
Go to the top of the page
+Quote Post
Pilsener
post 26.05.2009, 12:08:48
Post #17





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Moim zdaniem chyba jedyna bezpieczna i względnie "pewna" metoda to serwer uwierzytelniający, bez którego aplikacja nie ma prawa działać - jak to zrobić, aby nie można było obejść? Pierwsza myśl jest taka, że na serwerze znajduje się plik konfiguracyjny + jakaś część kodu, która jest niezbędna do poprawnego działania aplikacji - a jak to zrobić, aby nie dało się łatwo przerobić aplikacji i spreparować pliku .cfg na własnym serwerze? Nie wiem - może co jakiś czas serwer wysyła nowy klucz dostępu do pliku konfiguracyjnego? Pomysłów pewnie jest wiele - trzeba by to zrobić tak, aby "uniezależnienie" aplikacji od serwera uwierzytelniającego było maksymalnie trudne i nieopłacalne - w każdym bądź razie pomysł jets wart rozważenia, może ktoś kiedyś coś takiego wymyśli i powstaną serwery autoryzujące aplikacje PHP, których kod źródłowy będzie szyfrowany zmiennym kluczem pobieranym z tych serwerów? Nie wiem winksmiley.jpg
Go to the top of the page
+Quote Post
Szunaj85
post 26.05.2009, 14:32:00
Post #18





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Pgrzelka...
Cytat
możesz też zakodować coś takiego
if ($domena != 'dozwolonadomena') {
mail(twoj@mail, 'naruszenie', 'klient umiescil skrypt na innej domenie');
}
Twój pomysł jest dobry. Sam przyznam, że o czymś takim myślałem. Trzeba jednak pamiętać, że wiele serwerów ma zablokowaną funkcję "mail" i wtedy komunikatu nie otrzymasz. sadsmiley02.gif


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
DannyM
post 26.05.2009, 14:39:34
Post #19





Grupa: Zarejestrowani
Postów: 507
Pomógł: 2
Dołączył: 30.10.2003
Skąd: Poznań

Ostrzeżenie: (10%)
X----


Cytat(Szunaj85 @ 26.05.2009, 15:32:00 ) *
Pgrzelka...
Twój pomysł jest dobry. Sam przyznam, że o czymś takim myślałem. Trzeba jednak pamiętać, że wiele serwerów ma zablokowaną funkcję "mail" i wtedy komunikatu nie otrzymasz. sadsmiley02.gif


Pomysl jest dobry ale zwraca na siebie uwage w kodzie co ulatwia wykrycie kodu, ktory za to odpowiada.
no chyba, ze

mail($a, $c, $y);

a zmienne zaszyc gdzies w kodzie choc to i tak dosc jasne i dla laika winksmiley.jpg
Go to the top of the page
+Quote Post
wNogachSpisz
post 6.06.2009, 11:01:01
Post #20





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Jest też narzędzie o nazwie: IonCube, niestety nie wiem na ile bezpieczne, na pewno koduje pliki źródłowe do postaci, z której nie można już wrócić do piewotnego kodu php. Nie mam konkretnej informacji na ten temat, ale chyba krakersy będą w stanie znullować tak zabezpieczony soft.

Można też umieścić cały rdzeń aplikacji na zaufanym serwerze firmowym (nigdy nie zdradzamy kodu na serwerze) i komunikować się z nim przez RPC, przeliczac po stronie serwera i zwracac wynik, baza danych może być umieszczona na takim serwerze lecz może też siedzieć u klienta, klientowi udostępnić tylko pliki szabonów i ten jak najkrótszy kod do komunikacji z serwem.
Krótko mówiąc, umieścić na firmowym serwerze tyle kodu ile się da i nie ujawniać go.Oczywiście wszystko zależy jakiego robisz appsa, w wielu przypadkach coś takiego będzie po prostu niemożliwe do wykonania.

A teraz przykład z życia:
Oprogramowanie o nazwie Kayako SupportSuite (taki system obsługi klienta)
licencja kosztuje ileś tam dolarów i nie ma praktycznie opcji uruchomienia tego oprogramowania w taki sposoób, żęby nie dało się ukryć jego pracy po znalezieniu stronki na którą padnie chociaż cień podejżenia że Kayako tam dziala,


a jeśli się da to wymagało by to ogromu pracy.
Sciagnijcie z torrentów i sprawdźcie sami smile.gif

Po znalezieniu stronki gdzie dziala nasz soft każdy chyba wie co robić, dla pewności przypomne, wysyłamy do admina strony email w którego treści wymieniamy wszystkie organy wykonawczne w europie smile.gif ten sposób nie dziala tylko na ThePirateBay.org smile.gif

Refleksja:
Czy na prawde musimy robić kod zabezpieczony za wszelką cene? czy nie możemy zrobić JavaScripta, okraszyć go licencją i zwyczajnie liczyć na uczciwość ludzką, a w razie jej braku bez ceregieli sąd i odszkodowanie? smile.gif

Ten post edytował wNogachSpisz 6.06.2009, 11:13:39
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 7.07.2025 - 02:47