Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Hashowanie kodu
Forum PHP.pl > Forum > Przedszkole
HasH1
Witam serdecznie,

Mój problem polega na kodzie php, który muszę ukryć/zahashować przed edycją, a jednocześnie udostępnić użytkownikom.
Jak mógłbym tego dokonać ?

Pozdrawiam.
Hash / Cookiedesign
erix
To ukryć, czy zahashować?
Robert1985
Też nie rozumiem nie wiem czy wiesz ,ale forum rządzi się kilkoma zasadami i jedną z ważniejszych jest konkretne zadawanie pytań.
Ukryć kod PHP? Ale przed kim? Przed użytkownikiem? A jak rozumiesz użytkownika? Użytkownik strony nie widzi kodu PHP. Ukryć przed programistą? Do tego służą modyfikatory dostępu. Opisz proszę konkretniej co chcesz osiągnąć.
dudi1261
Jesli ukryc/zahashowac przed edycja, a jednoczesnie udostepnic uzytkownikowi to znaczy wyslac komus swoj skrypt, ale taki ktory nie mozna w zaden sposob zmienic. Dołączam sie do pytania. Widzialem ioncube, ale licencja kosztuje 800zl. Jest cos tanszego, a zarazem bezpieczniejszego?
kipero
Ciężko będzie coś zrobić, żeby zabezpieczyć całkowicie kod przed edycją. Ja spróbowałbym pozamieniać nazwy zmiennych z ich hashami, tzn. wyrażeniami regularnymi pozamieniać $zmienna na $6d259a17912852827ba75e7d114194d78a475292, itd. Dodatkowo można zrobić to samo z nazwami klas/interfejsów/funkcji. Na koniec możesz jeszcze usunąć wszystkie białe znaki(spacje, tabulatory, znaki nowego wiersza). Kod stanie się nieczytelny, choć nadal nie będzie w stu procentach zabezpieczony. Jeśli ktoś będzie bardzo zdesperowany to i tak zdoła przy dużym wysiłku go edytować.
Pozdrawiam.
erix
To jest tylko obfuskacja.

Albo wybulisz, się nie zabezpieczysz.

A jeśli chodzi o ionCube'a, to jest również usługa kodowania online; płacisz wówczas per plik.
dudi1261
Znajomy powiedzial, ze nie ma takiego encryptera php, ktorego nie da sie zlamac. ionCube kosztuje 800zl, a nie chcialbym abym wylozyl ta kase na niego, a on zostal zlamany przez jakiego hackera..

obfuskator nic nie da, gdyz ja musze zabezpieczyc haslo do mojej bazy danych ktore jest w kazdym pliku.
thek
Hasło do bazy w każdym pliku? Pogięło Cię? Tak się nie robi. Hasło do bazy i konfigurację połączenia zapisujesz w osobnym pliku w postaci zmiennej/tablicy, by nawet po jawnym wywołaniu pliku interpreter przetworzył dane (zwróci wtedy pustą stronę), a nie je wyświetlił w postaci tekstu. A najlepiej by było jeszcze, żebyś sam plik zabezpieczył pod kątem możliwości wywołania go tylko z serwera.
dudi1261
Witam.
Wykorzystywalbym to do skryptow ktore moglby kupic kazdy uzytkownik za np. smsa na miesiac. przy kupowaniu podawaloby sie adres domeny na ktorej ma skrypt dzialac. Wtedy zostalby aktywowany skrypt tylko na podana domene. Aby blokada dzialala musialby skrypt laczyc sie z moja baza danych w ktorej bedzie zapisane jaki skrypt i gdzie ma dzialac. Jest jakis inny sposob aby to dzialalo?
pedro84
Cytat(dudi1261 @ 1.06.2010, 09:58:14 ) *
Witam.
Wykorzystywalbym to do skryptow ktore moglby kupic kazdy uzytkownik za np. smsa na miesiac. przy kupowaniu podawaloby sie adres domeny na ktorej ma skrypt dzialac. Wtedy zostalby aktywowany skrypt tylko na podana domene. Aby blokada dzialala musialby skrypt laczyc sie z moja baza danych w ktorej bedzie zapisane jaki skrypt i gdzie ma dzialac. Jest jakis inny sposob aby to dzialalo?

Tak, tak. W Przypadku gdy serwer MySQL Ci padnie ktoś ma nieużyteczny skrypt. Poza tym, co za problem usunąć (zlokalizować i wywalić) te fragmenty z kodu? Żaden.
erix
Cytat
ionCube kosztuje 800zl, a nie chcialbym abym wylozyl ta kase na niego, a on zostal zlamany przez jakiego hackera..

Nie ma takiego zabezpieczenia, którego nie da się złamać. Skoro szukasz takiego, który nie zostanie złamany, to życzę szerokości.

Tak nawiasem, jeszcze nie słyszałem o przypadku odkodowania skryptu zabezpieczonego ionCubem bez klucza. Ale i tak jest to do złamania, wystarczy że ktoś ma pojęcie o deasemblacji oprogramowania, wtedy ŻADNE zabezpieczenie nie będzie miało przed nim tajemnic.

Cytat
Aby blokada dzialala musialby skrypt laczyc sie z moja baza danych w ktorej bedzie zapisane jaki skrypt i gdzie ma dzialac. Jest jakis inny sposob aby to dzialalo?

Głupie rozwiązanie. Choćby dlatego, że wystarczy zostawić sniffer na port, na którym działa MySQL, a Twoje zabezpieczenia na nic się nie zdadzą. MySQL domyślnie przesyła dane przez połączenie nieszyfrowane; nawet jeśli to hash, to jest kwestią czasu, aby ktoś znalazł kolizję, ew. wstrzyknął go do własnego programu i robił Tobie cyrki z bazą. Rozwiązanie nigdzie nie stosowane i stwarzające za duże ryzyko.

Jeśli chodzi o bardziej sensowne, to poczytaj o XML-RPC albo SOAP. Przeprowadzasz handshaking kluczy i zapisujesz, co trzeba; zależy od tego, co chcesz osiągnąć.

Tak BTW, każdorazowe sprawdzanie czegoś takiego jest złe. Twój serwer pada = padają wszystkie aplikacje zależne.
dudi1261
Czytalem, ze ionCube moze tak kodowac pliki ze przestaja one dzialac po okreslonym czasie. To takze, by mnie satysfakcjonowalo, ale wtedy musialbym inaczej rozwiazac kupowanie skryptu. uzytkownicy musieliby co miesiac sciagac na nowo modyfikacje..

Ma ktos inna propozycje?
erix
No ściągać, ale w czym problem zrobić skrypt, który automatycznie by sprawdzał i pobierał pliki licencji? Naprawdę szukasz problemu, gdzie go nie ma. winksmiley.jpg
dudi1261
Automatyczne pobieranie plikow licencji? Jakby to mialo dzialac? Nie rozumie Twojego zamyslu..
marcio
Laczysz sie socketami z twoja strona ewentualnie mozesz zastosowac cos ala "rss" zeby bylo latwiej spradzasz co masz sprawdzic i jesli jest ok dajesz mozliwosc user'owi sciagnac licencje snitch.gif
dudi1261
czyli mialbym to polaczyc z premium smsami. Ale skrypt sam pobieralby licencje czy musialby to manualnie zrobic wlasciciel strony?
Myslalem, aby zapisywac domeny na ktorych ma dzialac skrypt i skrypt laczy sie z tymi moimi danymi, sprawdza czy domena na ktorej sie znajduje jest dozwolona i jesli tak to wtedy zaczyna dzialac. Dobrze mysle? ;>
erix
A jaki problem z cronem to połączyć?
dudi1261
Zadania Cron na moim serwerze. Tu mam dwa pytania. Jakie funkcje mialby wykonywac cron? W jakim odstepie czasowym?

Znam wylacznie php i wiekszosc rzeczy o ktorych mi tu mowicie tylko slyszalem. Nigdy nie uzywalem, ani nie czytalem o tym wiecej. Prosilbym o konkretniejszy opis.

Z gory dzieki snitch.gif
erix
Cron ma działać na serwerze, na którym działa konkretna instancja aplikacji.

Jakie konkrety? Mamy Ci całą aplikację opisać? Dostałeś naprawdę sporo podpowiedzi.
zend
@dudi - a nie lepiej było by Ci to trzymać na własnym serwerze i udostępniać w chmurze jako saas?
dudi1261
Cytat(zend @ 2.06.2010, 10:40:49 ) *
@dudi - a nie lepiej było by Ci to trzymać na własnym serwerze i udostępniać w chmurze jako saas?


Mialbym trzymac na wlasnym serwerze skrypty. Ale jak kontrolowac kto pobiera (ma na stronie moj skrypt)? Jak mialby go tam osadzic? wiekszosc skryptow bedzie musiala laczyc sie z baza danych u uzytkownika, wiec watpie ze na to jest jakies rozwiazanie.


Oczekuje konkretniejszych odpowiedzi nie tylko o sposobie, ale jak on dziala i gdzie moge o nim poczytac (po polsku) i go zastosowac. Google niewiele mowi na te tematy.
zend
Jeżeli nie jest to coś co będzie wymagało czestych odwołań do bazy, to dla każdego klienta tworzysz osobną instancję z jedo danymi dostępowymi do bazy. Choć nawet dużo odwołań do bazy nie jest problemem bo dane można cache'ować.
tehaha
zależy jak dużego zabezpieczenia oczekujesz, może zrób tak, żeby skrypt pobierał plik z Twojego serwera i sprawdzał czy domena na której jest zainstalowany znajduje się na liście, dodatkowo jeżeli pliku nie można pobrać lub odczytać to zezwalasz na działanie, tak żeby skrypt nie był bezużyteczny w sytuacji kiedy Twój serwer padnie, potem w prosty sposób możesz zrobić obfuskację tak jak radził @kipero - pozamieniać nazwy zmiennych z haszami i pousuwać spacje i \n, a na końcu walniesz sobie ion cube kodowanie online za kilka $ i wystarczy, przeciętny stefan z podstawami php nic na to nie poradzi, a i tak nie znajdziesz 100% zabezpieczenia więc po co za dużo kombinować
Wykrywacz
@dudi a nie masz wrażenia że powinieneś się najpierw jednak trochę douczyć? Bo wyskakujesz z mega poronionymi pomysłami na jakieś pseudo zabezpieczenia, nie czając co rozmówcy w ogóle próbują ci przekazać.
erix
Cytat
Oczekuje konkretniejszych odpowiedzi nie tylko o sposobie, ale jak on dziala i gdzie moge o nim poczytac (po polsku) i go zastosowac. Google niewiele mowi na te tematy.

Ciężko zaimplementować to, o czym napisaliśmy? Poza tym, po polsku raczej nie za wiele się nauczysz...

Jak google mało mówi, to sprawdź pod takimi frazami:
  • SOAP
  • XML-RPC
  • handshaking
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.