Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zabezpieczenie kodu PHP przed dzieleniem.
miki3475
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 1
Dołączył: 15.06.2008

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


Witam serdecznie, tworzę właśnie skrypt, który będzie łączył się przez Internet z różnymi stronkami (przy tym logując się na niektóre itp.) i wykonywał przeróżne czynności (to nie jest ważne, ważne jest to że skrypt będzie się łączył z internetem).
Skrypt będzie zazwyczaj puszczany na localhoscie (często zmienne IP) oraz na normalnym serwerze (od czasu do czasu).

Zlecenie otrzymałem od kolegi znajomego1, który powiedział że jego znajomy (nazwijmy go znajomy2), potrzebuje czegoś takiego.
Koncepcja skryptu spodobała się tak znajomemu1, że postanowił i on kupić ten skrypt.
W efekcie postanowiłem, że od każdej osoby ściągnę po tej samej cenie, jaką z początku oferowałem znajomemu2.
Oczywiście od razu zaczęli kombinować i już wiem, że postanowili zakupić 1x i koszty podzielić między siebie na połowę.

Teraz mam dylemat, co zrobić? Jak zabezpieczyć skrypt przed tym, aby nie mogli wysłać go między sobą, a raczej działał tylko u jednego z nich.
Myślałem o zabezpieczeniu IP (tylko IP z listy mogą używać skryptu), ale fakt że duża część ma zmienne ip wyklucza to.
Myślałem również o jakiś loginach i hasłach, ale nic szczególnego.

Jak Wy sobie z takim procederem radzicie i jakie rady możecie mi dać?
Z góry dzięki za odpowiedź. Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nekomata
post
Post #2





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Sam jestem dopiero początkujący i szczerze mówiąc nie mam pojęcia ale i tak trochę główkowałem i doszedłem do wniosku że jeśli mają być identyfikowane komputery i jeśli skrypt ma być na localhoscie to ja bym kombinował tak :
Stworzyć skrypt "register.php" albo coś takiego który klient musiałby uruchomić u siebie na localu.W pliku tym byś wywalał parę pytań do usera dla zamaskowania prawdziwej intencji , mianowicie pobrania adresu MAC,który byłby wysyłany na skypt na twoim hoscie (tylko pobranie adresu i zapisanie do txt,więc darmowy nawet da rade bez problemu).Potem byś tylko generował jakiegoś hasha (md5 etc.) na podstawie MAC i wysłałbyś to userowi np. plik , licence.key (dla zmyłki (IMG:style_emoticons/default/biggrin.gif) tak naprawdę to byłby plik txt z tylko hashem który byś pobierał za pomocą file get contents) teraz najlepsza rzecz key z pliku txt porównywałbyś z Aktualnym adresem MAC danego PC który byś przepuścił przez ten sam hash ( i tu jest problem bo jak się ktoś zna na php to ci to obejdzie tak czy siak, dla bezpieczeństwa nie rób takich rzeczy że zmienną nazwiesz "$weryfikacja" albo coś takiego (IMG:style_emoticons/default/biggrin.gif) ).

Ja tak bym kombinował,cóż pewnie jakiś wymiatacz zaraz całą moją teorie obali, ale próbowałem!
Go to the top of the page
+Quote Post
yevaud
post
Post #3





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


jest wiele sposobow na zalatwienie tego, zaden nie jest w 100% skuteczny
generalnie musisz sprawic zeby skrypt mial jakas metode wykrywania sprzetu na ktorym zostal uruchomiony np. tak jak wspomnial kolega nizej.
Do tego powinienes jakos zabezpieczyc skrypt przed modyfikacja np. ZendEncoder albo IonCube

najlepszym wejsciem jest im sprzedac od razu hosting i skrypt trzymac na nim, tak zeby placili za usluge SAS (IMG:style_emoticons/default/tongue.gif)

edit: mozesz zrobic tak, zeby skrypt laczyl sie z Twoim serwerem i podawal na jakim serwerze jest wlaczony i czy ma dalej chodzic (IMG:style_emoticons/default/smile.gif) Mozesz tez sprobowac czegos bardziej hardcore czyli zeby skrypt pobieral czesc swojego kodu z Twojego serwera i odpalal go u siebie jakims evalem - z tym ze stworzy to potencjalny problem bezpieczenstwa.
Moze dobrym pomyslem jest powiedziec kolegom, ze skrypt jest zabezpieczony przed rozprowadzaniem i jesli ktorys z nich naruszy umowe licencyjna to wytniesz ich obu.

Ten post edytował yevaud 30.01.2011, 05:50:53
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(nekomata @ 30.01.2011, 05:06:46 ) *
Stworzyć skrypt "register.php" albo coś takiego który klient musiałby uruchomić u siebie na localu.W pliku tym byś wywalał parę pytań do usera dla zamaskowania prawdziwej intencji , mianowicie pobrania adresu MAC,który byłby wysyłany na skypt na twoim hoscie

W PHP nie pobierzesz MAC'a.

Cytat(yevaud @ 30.01.2011, 05:41:29 ) *
Do tego powinienes jakos zabezpieczyc skrypt przed modyfikacja np. ZendEncoder albo IonCube

Jedyna słuszniejsza metoda zabezpieczenia kodu.

Cytat(yevaud @ 30.01.2011, 05:41:29 ) *
najlepszym wejsciem jest im sprzedac od razu hosting i skrypt trzymac na nim, tak zeby placili za usluge SAS (IMG:style_emoticons/default/tongue.gif)

Czasem może to być gra niewarta świeczki.

Cytat(yevaud @ 30.01.2011, 05:41:29 ) *
edit: mozesz zrobic tak, zeby skrypt laczyl sie z Twoim serwerem i podawal na jakim serwerze jest wlaczony i czy ma dalej chodzic (IMG:style_emoticons/default/smile.gif) Mozesz tez sprobowac czegos bardziej hardcore czyli zeby skrypt pobieral czesc swojego kodu z Twojego serwera i odpalal go u siebie jakims evalem - z tym ze stworzy to potencjalny problem bezpieczenstwa.

Nie tyle bezpieczeństwa co rodzi problemy typu: przepustowość łącza. A co będzie jeżeli jego serwer padnie lub net mu padnie? Dwa skrypty za które ktoś zapłacił są unieruchomione.

Cytat(yevaud @ 30.01.2011, 05:41:29 ) *
Moze dobrym pomyslem jest powiedziec kolegom, ze skrypt jest zabezpieczony przed rozprowadzaniem i jesli ktorys z nich naruszy umowe licencyjna to wytniesz ich obu.

Równie dobrze mógłby napisać licencję i złożyć pozew o naruszenie praw autorskich i rozprowadzanie bez zgody autora.
Go to the top of the page
+Quote Post
yevaud
post
Post #5





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


Cytat
W PHP nie pobierzesz MAC'a.

exec i juz jest mac. http://stackoverflow.com/questions/1420381...d-client-in-php
Mac jest srednim wyjsciem z innych powodow, chociazby takich ze niekoniecznie zachowuje sie jak trzeba na wirtualnych interface, czesto tez mamy wiecej niz jeden interface na serwerze. Pomijam juz koniecznosc zdobycia maca do serwera ktory w momencie oddania skryptu klientowi, prawdopodobnie jeszcze nie istnieje


Cytat
Jedyna słuszniejsza metoda zabezpieczenia kodu.

szkoda ze niespecjalnie skuteczna, a do tego droga

Cytat
Czasem może to być gra niewarta świeczki.

czasem pewnie moze

Cytat
Nie tyle bezpieczeństwa co rodzi problemy typu: przepustowość łącza. A co będzie jeżeli jego serwer padnie lub net mu padnie? Dwa skrypty za które ktoś zapłacił są unieruchomione.

To byla tylko propozycja rozwiazania, kazde z wymienionych rozwiazan ma swoje wady. Generalnie z wyjatkiem sytuacji szczegolnych, wiekszym problemem jest to ze skrypt zostawia gigantyczna dziure na serwerze, niz to ze przez chwile nie dziala bo jakis serwer nie ma netu.
Nie uwazasz ze skrypt ktory daje dostep kazdemu kto rzuci w niego dns/arp poison albo zdobedzie dostep do serwera centralnego to powazny problem ?

Cytat
Równie dobrze mógłby napisać licencję i złożyć pozew o naruszenie praw autorskich i rozprowadzanie bez zgody autora.

pewnie by mogl, ale jedno nie ma z drugim wiele wspolnego. Chodzilo mi o to, ze sama grozba wyciecia bylaby byc moze wystarczajacym zabezpieczeniem. Grozba procesu w naszym kraju niespecjalnie dziala. W przypadku malych zlecen brzmi w ogole jak kpina, poniewaz koszt prowadzenia wieloletniego procesu przekracza caly budzet takiego projektu kilkusetkrotnie
Go to the top of the page
+Quote Post
nekomata
post
Post #6





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Cytat(fifi209 @ 30.01.2011, 09:06:49 ) *
W PHP nie pobierzesz MAC'a.

Nie no wcale to odpal sobie to :
  1. <?php
  2. system("ipconfig /all");
  3. $mycom=ob_get_contents();
  4. preg_match("/[0-9a-f][0-9a-f][:-]".
  5. "[0-9a-f][0-9a-f][:-]".
  6. "[0-9a-f][0-9a-f][:-]".
  7. "[0-9a-f][0-9a-f][:-]".
  8. "[0-9a-f][0-9a-f][:-]".
  9. "[0-9a-f][0-9a-f]/i",$mycom,$x);
  10. print_r($x);
  11. ?>

Zrobiłem tylko na windows ale wystarczy zapuścić że jak nie złapie na windowsowej komendzie nic to odpali linuxową, tak czy siak preg_match zostanie.

Btw po wpisaniu w google frazy "php get mac adress"
Kod
Około 6,820,000 wyników (0,20 s)


Ten post edytował nekomata 30.01.2011, 20:04:20
Go to the top of the page
+Quote Post
everth
post
Post #7





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Ewentualnie jeśli to nie jest jakiś skomplikowany skrypt to możesz go napisać tak by skompilować go za pomocą RoadSend. Wtedy masz spokój z zabezpieczeniem kodu i możesz dopisać jakąś funkcję wymagającą podania klucza aktywującego. Pytanie na ile RoadSend umożliwia bezproblemową kompilację - jakoś nie słyszałem o jego szerszym użyciu w praktyce.
Go to the top of the page
+Quote Post
set4812
post
Post #8





Grupa: Zarejestrowani
Postów: 150
Pomógł: 3
Dołączył: 13.04.2010

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


Cytat(nekomata @ 30.01.2011, 20:03:45 ) *
Nie no wcale to odpal sobie to :
  1. <?php
  2. system("ipconfig /all");
  3. $mycom=ob_get_contents();
  4. preg_match("/[0-9a-f][0-9a-f][:-]".
  5. "[0-9a-f][0-9a-f][:-]".
  6. "[0-9a-f][0-9a-f][:-]".
  7. "[0-9a-f][0-9a-f][:-]".
  8. "[0-9a-f][0-9a-f][:-]".
  9. "[0-9a-f][0-9a-f]/i",$mycom,$x);
  10. print_r($x);
  11. ?>

Zrobiłem tylko na windows ale wystarczy zapuścić że jak nie złapie na windowsowej komendzie nic to odpali linuxową, tak czy siak preg_match zostanie.

Btw po wpisaniu w google frazy "php get mac adress"
Kod
Około 6,820,000 wyników (0,20 s)


Fajnie wyswietlasz MAC tyle pytanie do ciebie po jakiej stronie działa php.
Bo z mojej wiedzy działa po stronie serwera a nie uzytkownika.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 18:43