![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Tak sobie siedzę i myślę i wpadłem na taki temat.
Napisałem aplikację MyApp (nazwa zmyślona) - oczywiście php/SQL. Udostępniam jej demo na sieci i oferuję jej sprzedaż za cenę X zł. I teraz szukam sposobu, w jaki można by zabezpieczyć MyApp przed rozpowszechnianiem pakietu poza moja kontrolą. Poza stosowaniem np. MMCache lub ZendEncodera (itp) nic innego sensownego nie przychodzi mi do głowy. Powyższe rozwiażania niestey nie wchodzą w grę - jeśli MyApp sprzedam komuś, kto ją będzie chciał postawic np. na Lycosie, to wszystko zdechnie. Oczywisćie ufam userom i jełśi za coś zapłacili XX zł, to prawdopodobnie nie będą tym handlować dalej, ale.. temat do przemyśleń jest. Macie jakieś pomysły? -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 16 Dołączył: 25.05.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
Cytat(scanner @ 2004-09-29 14:03:43) Oczywisćie ufam userom i jełśi za coś zapłacili XX zł, to prawdopodobnie nie będą tym handlować dalej, ale.. temat do przemyśleń jest. Nie ufaj, spójrz na torrenty, niemal wszystko jest tam płatne.... A co do zabezpieczeń, może jakiś zdalny ssytem autentyfikacji, np skrypt po uruchomieniu kontaktuję się z serwerem XXX i porównuje kod, jeśli kod jest w bazie danych serwera XXX oskryptowanie pracuje dalej, jeśli nie wykonuje die('bla bla bla'), jednak to ma jedną zasdaniczą i ogormną wadę, mianowicie każdy będzie mógł wywalić cześc kodu odpowiedzialną za to ze źródeł.... Mam nadzieję że chociaż odorbinę to pomogło, nasunęło jakieś rozwiązanie o ktorym ja niemam pojęcia cheers, fiszol Ten post edytował fiszol 29.09.2004, 13:23:22 -------------------- \o/
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat(fiszol @ 2004-09-29 14:21:24) jednak to ma jedną zasdaniczą i ogormną wadę, mianowicie każdy będzie mógł wywalić cześc kodu odpowiedzialną za to ze źródeł.... Za długo nad tym myślę, zębym pominął taką oczywistośc. Próba użycia takiego systemu ma dwie wady: - system kontrolny (mój serwer) moze być offline - autoryzacja zdechnie - bez kompilacji (ZendEnc, MMCache) stosowanie takiego modelu jest pozbawione logiki, sam powiedziąłeś, ze mozan wyedytować. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Moim skromnym zdaniem nie da się tego zabezpieczyć. Złamanie/obejście/wywalenie każdego zabezpieczenia w nieskompilowanym kodzie to tylko kwestia czasu.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]() ![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Jedna z mozliwosci jest sprzedawanie interfejsow do MyApp - ktore bedzie dzialalo na twoim serwerze, i komunikowalo sie z nim np za pomoca xml-rpc" title="Zobacz w manualu PHP" target="_manual lub soap" title="Zobacz w manualu PHP" target="_manual... Oczywiscie wymaga to od ciebie jako producenta MyApp zapewnienia stabilnosci serwera - ale to sa konsekwencje bezpieczenstwa...
-------------------- Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 27.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
sam o tym też mślałem i potrzebuję jakieś dobrego rozwiązania.
a co powiecie aby źródło umieścisz na własnym sererze a u kolesia jedynie pliki które by pobierały kod, tylko trzeba by to zrobić tak aby on sam nie mógł ich ściągnąć, i nie wiem czy to jest w ogóle możliwe -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
zawrzyj to w umowie kupna-sprzedaży lub licencyjnej.
jeśli nadasz każdemu egzemplarzowi aplikacji ukryty w źródle kod, i jeśli dojdą do Ciebie informacje (lub sam znajdziesz), że ten egzemplarz aplikacji jest dostępny w sieci w wersji pełnej za friko, zawsze będziesz mógł pociągnąć do odpowiedzialności cywilno-prawnej właściciela egzemplarza z tymże ukrytym kodem. co innego, jeśli jakiś egzemplarz ktoś rozkompiluje, złamie (usunie część z kodem) i po skompilowaniu wrzuci do sieci... - ostatnio to się stało standardem przy łamaniu zabezpieczeń nawet tych najdroższych programów... acha - oczywiście pozostaje kwestia obowiązkowej rejestracji egzemplarza aplikacji przez klienta... co do ceny... zależy jaką ta aplikacja ma wartość merytoryczną - to sam musisz wiedzieć, na ile cenisz czas jej poświęcony, i to co dana aplikacja daje (czyt.: jak bardzo ułatwia userowi życie). sęk w tym, że zazwyczaj, jeśli miałbyś wycenić swoją aplikację na tyle, ile ona faktycznie jest warta, to nikt by jej nie kupił ![]() chyba, że dążyć do czegoś takiego, do czego dąży(ł?) microsoft... sprzedajesz interface z dostępem do serwera, na którym działa aplikacja - wtedy masz pewność, że tylko jeden user używa tylko jednego egzemplarza, bo loguje się na serwerze na swoje konto. a opłaty pobierasz np. rocznie(?) ryczałtem. -------------------- www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 16 Dołączył: 25.05.2004 Skąd: Gorzów Wlkp. Ostrzeżenie: (0%) ![]() ![]() |
@mpps; tutaj dochodzi jeszcze coś takiego jak koszta sądowe, czy mianowicie skrypt będzie wart dochodzenia sprawiedliwości ( adkewatnie do ceny skryptu )
Cytat (lub sam znajdziesz) To oznacza albo trzepanie googli dzień w dzien 24h/ dobę, albo zostawanie jakiegoś backdoora w oskryptowaniu co jesz\t raczej nie fair wobec klientaCytat co innego, jeśli jakiś egzemplarz ktoś rozkompiluje, złamie (usunie część z kodem) i po skompilowaniu wrzuci do sieci... - ostatnio to się stało standardem przy łamaniu zabezpieczeń nawet tych najdroższych programów... Torrenty, tam jest wszystko bez ograniczeń, i jeśli oskryptowanie określone tutaj jako "MyApp" spotkało by się z szerokim zainteresowaniem, rónież pojawiło by się jako torrent, a w przypadku serwisów torentowych dochodzenie swoich praw jest w ręcz nierealne. to tyle, fiszol Ten post edytował fiszol 29.09.2004, 13:53:27 -------------------- \o/
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak Wy sadzice ale wydaje mi sie ze szanse na odnalezienie wlasnej aplikacji w necie jes nierealne - nie oszukujmy sie. Szczerze mowiac - ja bym rpobowal w ajkis pecyficzny spsobtworzyc HTML-a - jakies okreslone nazwy pol czy siakies takie rzeczy? innego pomyslu nie widze. pomysl glupi ale np. przekazywanie danych w adresie czy cos moze wskazywac na ta aplikacje - z tym ze musi ona sluzyc do konkretnych celow
Pozdrawiam -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 0 Dołączył: 15.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat tutaj dochodzi jeszcze coś takiego jak koszta sądowe, czy mianowicie skrypt będzie wart dochodzenia sprawiedliwości ( adkewatnie do ceny skryptu ) Możesz się sądzić nawet o 100 zł. Fakt, zapłacisz za prowadzenei sprawy jednak jeżeli masz pewność, że wygrasz to: a) dasz nauczkę oszustowi ![]() -------------------- Ez Partner :]
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mam pomysł.......
jeżeli chodzi o zabezpieczenie przed dalszym rozpowszechnianiem to można, np. tak: :: Jeżeli potrafisz zarządzać plikami/edytować je w kompresji zip to można zrobić tak, że każdy ściągnięty pakiet MyApp będzie miał w konfiguracji zapisany unikalny id. W momencie ściągnięcia skryptu ten id, ip downloadera, jego host i data ściagnięcia będzie zapisana do bazy. :: Administrator strony instalując MyApp będzie musiał podać adres email. :: Potem podczas instalacji MyApp, skrypt będzie pobierał adres strony do jakiejś zmiennej (powiedzmy $adres_strony) i wysyłał Ci email'a z takimi informacjami: Cytat Witaj, scanner! Kolejna strona ściągnęła i zainstalowała MyApp w wersji DEMO!! Poniżej znajdują się dane dot. strony oraz tego pakietu MyApp: Adres strony: http://adres.strony.pl Email admina: admin@adres.strony.pl Data instalacji: środa, 29 września 2004, 13:33:12 Identyfikator pakietu: 82cn3222xcak28cc0213cn4r2rn8573o Ilość identyfikatorów tego pakietu w bazie danych jest równa 0 a więc jest to świeży pakiecik MyApp. Możesz skontaktować się z adminem tej strony i podziękować za wybór MyApp >tutaj< no chyba, że taki id pakietu istnieje już to wtedy skrypt będzie sprawdzać czy w bazie istnieją identyfikatory takie jak podane w mailu, to wtedy będzie to tak: Cytat Witaj, scanner! Kolejna strona ściągnęła i zainstalowała MyApp w wersji DEMO!! Poniżej znajdują się dane dot. strony oraz tego pakietu MyApp: Adres strony: http://adres.strony.pl Email admina: admin@adres.strony.pl Data instalacji: środa, 29 września 2004, 13:33:12 Identyfikator pakietu: 82cn3222xcak28cc0213cn4r2rn8573o Ilość identyfikatorów tego pakietu w bazie danych jest równa 1 ![]() Możesz skontaktować się z adminem tej strony i porozmawiać na temat rozpowszechnianai MyApp >tutaj< oczywiście strukturę bd chyba będziesz umiał utworzyć ![]() pozdro! |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 602 Pomógł: 1 Dołączył: 3.04.2004 Skąd: Trójmiasto (Gdańsk) Ostrzeżenie: (0%) ![]() ![]() |
dobry pomysł ale nadal ktoś może usunąć kod odpowiedzialny za maila do autora z kodu
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 193 Pomógł: 0 Dołączył: 14.09.2003 Skąd: Brodnica (koło Torunia) Ostrzeżenie: (0%) ![]() ![]() |
W takim razie można to zapisać w jakimś pliku NIE MODYFIKOWAĆ (np. config.php, żeby osoba nie nabrała podejrzeń). Ale mam jeszcze inny sposób:
1. Napisać własną procedurę szyfrowania 2. Umieścić ją na własnym serverze 3. Zakodować nią plik CONFIG.php zawierający konfigurację oraz kod zrobiony na podstawie pomysłu Tiraetha 4. Podczas kożystania ze sryptu zaincludować nasz plik z procedurą szyfrowania, odkodować CONFIG.php oraz wywołac funckję eval" title="Zobacz w manualu PHP" target="_manual z podanym odkodowanym CONFIG.php Wszystko można złamać, ale należy jak najbardziej zamotać kod ![]() -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
eekch, a wracając do początku:
@scanner: ta aplikacja, o której mowa, to coś, co działa lokalnie, czy w necie? bo uważam, że to zasadnicza różnica w kwestii zabezpieczeń... aplikację net-ową łatwiej sprawdzić czy legalna...(?) -------------------- www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 407 Pomógł: 0 Dołączył: 24.10.2002 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Poza stosowaniem np. MMCache lub ZendEncodera (itp) nic innego sensownego nie przychodzi mi do głowy. Powyższe rozwiażania niestey nie wchodzą w grę - jeśli MyApp sprzedam komuś, kto ją będzie chciał postawic np. na Lycosie, to wszystko zdechnie. piszesz cos o nazwie 'requirements' i tam mowisz ze na serwerze ma byc zend optimizer i ze jest darmowy.. poza tym okresl sobie userow, chyba ktos kto wydaje pineiadze na oporgramowanie nie trzyma sajtu na darmowym koncie hostingowym. -------------------- Zalew :: http://jakubzalewski.info
|
|
|
![]()
Post
#16
|
|
Grupa: Zablokowani Postów: 50 Pomógł: 0 Dołączył: 8.08.2004 Ostrzeżenie: (10%) ![]() ![]() |
Mozna robic rozne myki. Wlasne taki jaki juz zostal opisany (z identyfikacja skryptu). Na pewno w skrypcie znajduje sie plik, ktory jest sercem skryptu. Moze to byc plik z funkcjami, moze to byc plik typu startowego. Moze po prostu umieszczac go na wlasnym serwerze i stamtad includowac? Wtedy jedyna mozliwosc, ze ktos napisze te pliki jeszcze raz...
|
|
|
![]()
Post
#17
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
__phpion__: jeżeli includujesz zdalnie, to żaden problem zobaczyć ten plik w przeglądarce... jeżeli ma być wykonywany na wspomnianym serwerze, to jak napisał scanner: "system kontrolny (mój serwer) moze być offline"
-------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 18.07.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
a moze cos takiego:
http://www.phpclasses.org/browse/package/1730.html Cytat Solace Script Maze is meant to protect php scripts from being stolen or modified.
It uses only native php functions, so no additional extensions are required to execute protected scripts, thus also support php 5. Ten post edytował borec 30.09.2004, 08:46:55 -------------------- Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam ...
a moze tak: - po zakupie skryptu, na etapie konfiguracji podaje sie wszystkie dane a po kliknieciu next pojawia sie piekny obrazek ... sciagany z twojego serwera ![]() ![]() - kodu z modolu rejstrujacego nie trzeba szyfrowac .... mozna go zaciemnic ... jezeli to skrypt ktory ma ze 300 linijek to po zaciemnieniu nie bedzie sie tego dalo przeczytac ... dodasz kilka mylnych funkcji i ktos bedzie musial siedziec 3 tygodnie zeby sie polapac co robi co ... - przy logowaniu admina moze znowu pobierac maly obrazek gif z transem 1x1 px z id i url i ip ... jezeli twoj serwer jest offline to trudno ... kiedys bedzie online ![]() - integralnosc pliku config.php mozna sprawdzic np. przy pomocy crc/md5/sha1 .... w kodzie pliku dajesz od linii 270: Kod /* jobhaowiubt43ioutbouiaebg4utf3a4uiot <- jakas suma asdgsdbiugbasdiugbaiubvgiuabgfiuwaebgiu <- jakas suma alsdjbgkjadsbgjbasdkjgbkjdasbgkjbksdjagbk <- jakas suma skadhfkhasdbgsabdvkhgbvkhui345rb34uib5ui234 <- jakas suma bc5iu3bc34uib5ucib34bc534uib5viuc3b5iu3 <- jakas suma j3b5ui34cb5iuqbc5iu3bc5uib34ic5ub3i4ucb5iu <- jakas suma icb5uic2b5iub3c5uib3ciu34cb5iu3cb5iu3cb4ui5c <- jakas suma */ a potem reszte skryptu ... zeby sprawdzic wczytujesz poczatek do linii 270 do stringa potem reszte od 27x do tego samego stringa i robisz crc tego stringa ... i to jest ktoras tych sum ... zaciemniajac kod [zminana nazw zmiennych i funkcji na ich sumy] sprawisz ze bedzie to extremalnie trudne do rozszyfrowania ... pozdrawiam -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Jeśli juz mówimy o zabezpieczaniu - ostatnio zastanawiałem się nad sposobami generowania "kluczy aktywacyjnych".
Problem sprowadza się do tego, jak napisać skrypt generujący jakiś klucz tak, by osoba mająca dostęp do kodu sprawdzającego czy dany klucz jest poprawny (zamka) - nie mogła (przynajmniej w zbyt prosty sposóB) wygenerować kolejnego (innego) klucza, pasującego do danego "zamka". Nie znalazłem żadnych gotowych bibliotek do takich działań, a wszystkie pomysły jakie przyszły mi do głowy - okazywały się stanowczo zbyt banalne do złamania. macie jakieś pomysły? -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 11:22 |