Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

6 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> Zabezpieczanie aplikacji przed kradzieżą
scanner
post 29.09.2004, 13:03:43
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?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
fiszol
post 29.09.2004, 13:21:24
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/
Go to the top of the page
+Quote Post
scanner
post 29.09.2004, 13:26:29
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ć.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
kszychu
post 29.09.2004, 13:28:04
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
Go to the top of the page
+Quote Post
bregovic
post 29.09.2004, 13:29:34
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
Go to the top of the page
+Quote Post
Dynuel
post 29.09.2004, 13:32:59
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


--------------------
Go to the top of the page
+Quote Post
mpps
post 29.09.2004, 13:43:51
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ł winksmiley.jpg więc należy cenę podzielić przez potencjalną ilość klientów...
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
Go to the top of the page
+Quote Post
fiszol
post 29.09.2004, 13:52:30
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 klienta

Cytat
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/
Go to the top of the page
+Quote Post
NuLL
post 29.09.2004, 16:33:00
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 :)
Go to the top of the page
+Quote Post
Dawid Pytel
post 29.09.2004, 16:53:14
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
cool.gif przegrana strona zwraca koszty procesu osobie, która wygrała


--------------------
Ez Partner :]
Go to the top of the page
+Quote Post
tiraeth
post 29.09.2004, 17:16:05
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 1exclamation.gif Chyba ktoś rozpowszechnia MyApp bez Twojej wiedzy.

Możesz skontaktować się z adminem tej strony i porozmawiać na temat rozpowszechnianai MyApp >tutaj<


oczywiście strukturę bd chyba będziesz umiał utworzyć smile.gif

pozdro!
Go to the top of the page
+Quote Post
rogrog
post 29.09.2004, 17:37:41
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


--------------------
Go to the top of the page
+Quote Post
MoD
post 29.09.2004, 17:45:21
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 smile.gif


--------------------
Go to the top of the page
+Quote Post
mpps
post 29.09.2004, 17:57:22
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
Go to the top of the page
+Quote Post
zalew
post 29.09.2004, 18:49:41
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.


--------------------
Go to the top of the page
+Quote Post
__phpion__
post 29.09.2004, 20:52:14
Post #16





Grupa: Zablokowani
Postów: 50
Pomógł: 0
Dołączył: 8.08.2004

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


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...
Go to the top of the page
+Quote Post
Bakus
post 29.09.2004, 22:10:09
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 :)
Go to the top of the page
+Quote Post
borec
post 30.09.2004, 08:30:03
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
Go to the top of the page
+Quote Post
orson
post 30.09.2004, 09:35:55
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 biggrin.gif w url przesylasz sobie dane typu id, ip serwisu, nazwa, url i inne ... mozna nawet zrobi js do przesylania postem ... mozna zrobic flasha ktory laczy sie z baza i wysyla te wszystkie zeczy ... i teraz jezeli serwer jest offline pojawia sie komunikat ze produkt nie moze zostac zarejstrowany ... try again later biggrin.gif [oczywiscie informacja o koniecznosci rejstracji znajduje sie w umowie licencyjnej]
- 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 biggrin.gif
- 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.
Go to the top of the page
+Quote Post
DeyV
post 30.09.2004, 09:44:11
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..."
Go to the top of the page
+Quote Post

6 Stron V   1 2 3 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:22