Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zabezpieczenie kodu PHP przed dzieleniem.
Forum PHP.pl > Forum > Przedszkole
miki3475
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.
nekomata
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 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 biggrin.gif).

Ja tak bym kombinował,cóż pewnie jakiś wymiatacz zaraz całą moją teorie obali, ale próbowałem!
yevaud
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 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 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.
Fifi209
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 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 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.
yevaud
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
nekomata
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)
everth
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.
set4812
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.