konsument
6.02.2013, 21:14:20
Witajcie, potrzebuję w php wygenerować unikalny numer komputera, coś jak numer mac karty sieciowej. W sumie to mac też byłby dobry, ale z poziomu php ciężko go odczytać na LAMPie odpalonym pod Win7. Dziękuję za wszelkie sugestie.
Posio
6.02.2013, 21:55:58
Najlepszym sposobem byłoby pobranie wszystkich możliwych STAŁYCH wartośći clienta, które możemy pobrać i zakodować je (wystarczy wymieszanie - z przyjętą regułą lub po prostu md5)
Odradzam w tym przypadku pobieranie np IP ponieważ zależnie od usera, może się zmieniać lecz nie musi.
konsument
7.02.2013, 08:49:52
Stałe wartości - tzn?
Damonsson
7.02.2013, 08:56:57
Nie ma żadnych stałych wartości. Można zmienić ip, przeglądarkę, rozdzielczość, język itd.
Możesz próbować z
http://samy.pl/evercookie/ ale to i tak nie jest doskonałe.
konsument
7.02.2013, 09:10:06
Może napiszę co chciałbym osiągać. Na pewnym komputerze na localhoscie będzie zainstalowana aplikacja w php. Jak uchronić się "w prymitywny" sposób przed wykonaniem kopii na inny komputer. Czyli przypisać aplikację do jednego komputera (np. poprzez ustawienie wartości w config.php)
Sephirus
7.02.2013, 09:29:21
To naprawdę byłby prymitywny sposób... Nie możesz zawrzeć takiego zabezpieczenia w kodzie, który jest dostepny w najłatwiejszy możliwy sposób do edycji...
IMHO - to się mija z celem dla PHP... Gdyby to był jakiś język kompilowany i zawarłbyś tą "stałą" wartość komputera w kodzie to ok... ale przecież w takim configu każdy może pogrzebać
sowiq
7.02.2013, 09:30:49
Nie da się tego osiągnąć, a przynajmniej nie w sposób o jakim piszesz. Przecież to żaden problem skopiować dowolne pliki konfiguracyjne. Ewentualnie w plikach źródłowych aplikacji znaleźć jakie rzeczy są weryfikowane i 1.: usunąć weryfikację z kodu, 2.: ustawić te rzeczy tak, żeby przechodziły weryfikację.
Co może Ci pomóc to narzędzia do kodowania plików źródłowych PHP. Zainteresuj się
ionCube oraz
ZendGuard. Musisz tylko pamiętać, że nie ma 100% sposobu na zaszyfrowanie plików. Są w internecie serwisy, które za cenę kilku $ rozkodowują takie pliki.
konsument
7.02.2013, 12:24:38
Szukam rozwiązania maksymalnie PROSTACKIEGO, które uniemozliwi przegranie aplikacji na inny komputer i wyświetli "nieautoryzowe użycie". A jak ktos zerknie w kod to wiadomo, że sobie wyłączy sprawdzenie albo wpisze poprawną wartość pseudokodu.
Z poziomu php najlatwiej byloby użyć numer IP, ale on zmienny dosyć.
Sephirus
7.02.2013, 12:29:37
Takie rzeczy rozwiązuje się inaczej z tego co mi wiadomo i z czym się spotkałem.
Przede wszystkim...
Nie dawaj kodu nikomu. Zamiast całej aplikacji daj jedynie klienta API i jego ewentualną obsługę. Aplikację główna wraz z głównym kodem i funkcjonalnością możesz dać jako webservice. Klient przy pomocy odpowiedniego hasła itd itp łączy się z webservice i ma przez to jego funkcjonalność. Sam skrypt posiadany przez gościa nic nie jest wart bez klucza/hasła API itd..
Niestety to rozwiązanie nie nadaje się do wszystkiego... i źle zrobione ma baaaardzo małą wydajność. Ale jeśli już ktoś powiedzmy zapłaci za "klucz" to nie odda go raczej nikomu za darmo. Dodatkowo każdy dostęp z danego klucza może być logowany przez co możesz odpowiednio szybko i łatwo zorientować się, że ktoś coś kręci.
Moim zdaniem naprawdę to co próbujesz uzyskać dla PHP nie ma po prostu sensu tak jak to planujesz...
sowiq
7.02.2013, 12:39:18
Cytat(konsument @ 7.02.2013, 12:24:38 )

Szukam rozwiązania maksymalnie PROSTACKIEGO
if(!is_file(APP_DIR
. '/../moj_super_tajny_plik.secure')){ throw new Exception("Nieautoryzowe użycie");
}
Tak jak napisał Sephirus i zostało napisane już wcześniej - bardziej skomplikowanego rozwiązania nie ma sensu tworzyć kiedy przekazujesz kod źródłowy klientowi.
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.