![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Hej,
nie wiem czy właściwe forum, bo temat dotyka kilku dziedzin. Ogólnie chodzi mi o zabezpieczanie kodu źródłowego i licencjonowanie aplikacji. Pracuję obecnie nad aplikacją, która wstępnie chciałem wykorzystać na własne potrzeby, ale okazuje się, że mogłoby nią być zainteresowanych kilka osób. Pytanie jednak jak najlepiej zabezpieczyć kod przed nieautoryzowanym użytkowaniem. Załóżmy, że chciałbym dawać licencję na użytkowanie na 1 domenie. Swego czasu były popularne różnego rodzaju programy typu Ioncube itp., ale gdy googlowałem w tym temacie, to wszystkie wątki są dość stare - sprzed kilku lat. Czy coś w temacie się zmieniło - pojawiły się jakieś nowe metody zabezpieczeń? Od razu napiszę, że w tym przypadku, z pewnych względów odpada SaaS - musi to być aplikacja self-hosted. Sama aplikacja jest dość niszowa, więc raczej nie spodziewam się jakiś historii typu łamanie zabezpieczeń itp, także godzę się z tym, że kod nie będzie w 100% bezpieczny. Powiedzmy, że ma to być zabezpieczenie skuteczne na typowego "Janusza internetu". Może lepiej nic nie zabezpieczać, a po prostu starać się wyłapać nielegalnych użytkowników? Przychodzi mi do głowy zaszycie w aplikacji różnych mechanizmów pingujących po których wiedziałbym, na jakich domenach aplikacja jest używana. Wiadomo - zawsze ktoś może takie zabezpieczenie z łatwością złamać, ale na wielu użytkowników takie zabezpieczenie w zupełności powinno wystarczyć. Reasumując jakie strategie są do wyboru. Może macie jakieś własne doświadczenia? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
IonCube to dość dobre rozwiązanie, pozwala zabezpieczyć na różnych płaszczyznach od domeny po mac serwera.
Jak to w tego typu zabezpieczeniach bywa, cena jest dość wysoka. Najnowsza wersja nie jest jeszcze chyba złamana (a raczej przechwycona, bo odbywa się to na zasadzie przechwycenia odkodowanego źródła zanim parser php skompiluje) Inna alternatywa to ZendEncoder. Są też chyba jakieś darmowe narzędzia ale wiadomo, bezpieczeństwo nie powala. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A tak z ciekawości jaki obecnie jest standard jeśli chodzi o płatne skrypty? Np. fora, sklepy internetowe itp., które nie są rozpowszechniane jako OS, tylko w formie kodu na jakiejś płatnej licencji komercyjnej? Ciągle się zastanawiam, czy kodowanie źródła do dobry pomysł sam w sobie. Może już dożyliśmy czasów, gdzie można liczyć na uczciwość kupujących i przy rozsądnej cenie nie ma sensu demonizować piractwa?
Jeszcze raz podkreślę, że program nie jest kierowany na massmarket, a do w miarę wąskiej grupy firm, więc nie chodzi tu o klientów typu "dzieci neostrady", które wszystko muszą pobrać za darmo z torrentów? Może takie firmy stosują jakieś inne formy zabezpieczeń - bardziej przyjazne klientowi? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Standard jest chyba taki, że po prostu płacisz i dostajesz cały kod źródłowy.
Jeśli aplikacja miałaby być używana w wąskim gronie odbiorców, to możesz zastosować prostą sztuczkę. Na umowie zawierasz wysoką karę umowną za rozpowszechnianie kodu źródłowego. A w samym kodzie robisz jakiś mały wyróżnik, dla każdego klienta inny. Np. dodajesz jakąś nieużywaną klasę, w jednym pliku inaczej sformatujesz klamerki, itp. Dzięki temu w przypadku ewentualnego wycieku, będziesz w stanie znaleźć jego źródło i będziesz mógł wyegzekwować karę umowną (IMG:style_emoticons/default/wink.gif) Ale to tylko takie teoretyzowanie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No właśnie o takim podejściu też myślę - zwłaszcza, że odbiorcami będą głównie firmy, więc ewentualne egzekwowanie należności powinno być łatwiejsze. Nie mam tu nawet na myśli jakiegoś straszenia ludzi wielkimi karami etc - po prostu chcę uniknąć sytuacji, że narobię się aby przygotować skrypt dla zwykłego użytkownika (bo wiadomo jak się pisze dla siebie, to wiele rzeczy można zrobić na zasadzie "to sobie zrobię w bazie bo robi się to tylko raz"), a potem ktoś puści w sieć i każdy sobie ściągnie darmową wersję. Myślę właśnie o zabezpieczeniach typu:
- jakaś akcja przy okazji wysyła do mnie email - jakaś akcja przy okazji łączy się z moim serwerem i loguję w ten sposób domenę z jakiej było wywołanie - wiadomo same aktualizacje też wymagają połączenia z serwerem - jakaś prosta licencja, którą co prawda da się łatwo obejść w kodzie, ale znów pewnie samo w sobie to zatrzyma dużą część potencjalnych piratów typu "Heniek, mam taką aplikację to Ci podeślę". Im więcej o tym myślę, tym bardziej dochodzę do wniosku, że chciałbym po prostu wyeliminować niedzielnych piratów. Moja aplikacja nie ma żadnych wymyślnych algorytmów, które chciałbym ukryć etc - po prostu trochę automatyzuje pewną czynność. Mocno nie sądzę aby komuś specjalnie zależało na łamaniu zabezpieczeń i rozpowszechnianiu pirackiej wersji. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przy takiej małej skali jaką opisujesz, sprytnie zaimplementowana licencja w zupełności wystarczy.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 17:00 |