Wpis z mikrobloga

Mirki, sprzedawał ktoś, wcześniej napisaną aplikację webową, klientowi na zasadzie sorta licencji na użytkowanie?
Tak że prawa zostają przy was, ale użytkownik kupuje prawa na jej użytkowanie, czyli jakaś subskrypcja, np nie wiem, do 5 feature'ów w roku, maintenance w tygodniu etc. Ale kod, idea etc należy do was.

Jak rozwiązaliście problem że płatność subskrypcji jest powiedzmy roczna, klient kupuje, a po roku stwierdza że skoro ma aplikacje, i ona działa to nie będzie wam więcej płacił, bo i tak ją ma na swoim serwerze i ona działa sprawnie.

Czy ktoś już coś takiego uprawiał?

Skąd zrodziło się pytanie:
Napisałem aplikację webową w #ror #rubyonrails którą chciałbym sprzedać zainteresowanym. I teraz jest problem, jak się dobrze zabezpieczyć przed oszustwami?

W przypadku gdy aplikacja będzie na serwerze klienta:
-Programy do obfuskacji kodu RoR trochę kosztują - 175 euro
-Kontaktowanie się z "domem" żeby sprawdzić czy licencja aby nie wygasła, to też trochę chybiony pomysł, bo ktoś może sobie wykomentować kod za to odpowiedzialny i nic nie zrobisz.

W przypadku gdy ja hostuję aplikację na swoim czy to wykupionym serwerze(SaaS - Software as a Service):
-O tyle dobrze że mam jako tako pełną kontrolę nad kodem, łatwość wypuszczania aktualizacji, maintenance'u etc.
-Dochodzi dopisanie funkcjonalności tak aby rozróżnić "firmy" ktore korzystają z serwisu
-Dochodzi koszt opłacenia serwisu hostingowego i wszystkiego z tym związanego

Czy ktokolwiek miał z takim problemem do czynienia? Jak to rozwiązaliście? Jakie metody zastosowaliście? Jakie podejście? Jak się z tym uporać? Podzielcie się proszę doświadczeniami bo dopiero zaczynam.

#webdev #programowanie tez otaguje bo to pokrewny temat i waszej opinii tez chętnie bym uslyszal #ruby
  • 27
  • Odpowiedz
@Kramarz: ale to bardzo łatwe zablokować aplikacje webową zdalnie, wystarczy druga apka na serwerze, która sprawdza czy nie minął czas subskrybcji.
  • Odpowiedz
@kazzr: Ale obydwie będą na serwerze klienta w takim razie? No to do obu ma wgląd i sobie może pozmieniać. A co jeżeli aplikacja będzie w intranecie?
  • Odpowiedz
@Kramarz: mi się wydaje, że @kazzr: mówi o tym, że jedna apka jest u klienta, a druga (sprawdzająca) u ciebie. A jak ma być w intranecie, to zrób tak, że klient musi ci otworzyć port do odpytywania czasu licencji, bo apka się nie odpali
  • Odpowiedz
@Kramarz: Podpisz odpowiednie umowy i bedziesz mogl straszyc sądem.
Jak cos lezy u niego na serwerze to i tak skutecznie tego nie zablokujesz.
Jak sie klient uprze to zatrudni kogos kto to "zlamie"
  • Odpowiedz
@Cesarz_Polski:

Bo appka się nie odpali

Nie wiem jak miał bym to zrobić...jakiś process czy whatever co co jakiś czas oczekuje jakiegoś sygnału od mojej aplikacji? - znowu, co za problem żeby jakiś ogar sobie to wykomentował?

@beee: Nie bardzo ogarniam jak miał bym to zrobić, trochę świeży w tym jestem. No i podobnie jak wyżej, co za problem żeby ktoś ogarnięty to "wykomentował" i wyłączył?
  • Odpowiedz
@matiit: No więc właśnie, jedyne co widze w takim wypadku gdy aplikacja jest calkowicie u klienta, to tylko i wylacznie egzekucje sądowe. Więc wydaje mi się że podejście aby zapłacić za hosting i mieć nad tym jako taką kontrolę jest dużo lepszym i pewniejszym rozwiązaniem. Na początku nawet darmowe rozwiązanie wystarczy dla 1-2 klientów a jak produkt ewoluuje i bedzie wiecej klientow to i oplacenie nie będzie problemem.
  • Odpowiedz
@Kramarz: jeżeli nie jesteś w stanie tego zrobić to zastanów się nad czymś co pozwoli na odłączenie systemu po stronie Klienta w przypadku niespełnionego warunku dot. "daty ważności", np.

możesz to zrobić od strony bazy MySQL - tworzysz bazę z Klientami (id Klienta, data ważności, itp), a po stronie Klienta umieszczasz kod, który sprawdza czy warunki niezbędne do prawidłowej integracji są spełnione.
  • Odpowiedz
@beee: czyli na przyklad jakiś zahashowana wartość w polu authenticate_license i jeżeli się zgadza z tym co jest w pliku license to działa, a jak nie, to jest wymagane wysłanie ode mnie nowego pliku license do nich na serwer aby dalej dzialalo, dobrze kombinuje?
Ale kurde... też mam wrażenie że da rade to obejsc, bo sprawdzenie tej wartosci i tak bedzie gdzies w MVC...
  • Odpowiedz
@beee: Ale widze tutaj taki problem, że i aplikacja i baza są po stronie klienta, raz że odhashowanie tego nadal jest widoczne w kodzie więc do szybkiego obejscia, a dwa co go broni żeby wprowadzić własnych wartosci do bazy do porownywania z plikiem license etc.
Chyba że coś już gmatwam
  • Odpowiedz
@beee: ponieważ jestem troche początkujący to nie wiem jak inaczej to zrobić... co kolwiek bym nie umiescil u klienta bez obfuckacji, jest on to w stanie zmodyfikować, w tym moje próby połączenia z zewnątrz, w tym proby zapytania o licencje, nie bardzo wiem jak to zabezpieczyć od strony klienta poza tym że nic nie będzie u klienta tak na prawde.
Czy wysle zapytanie, czy co kolwiek, to moze tak zmodyfikować kod
  • Odpowiedz
@Kramarz: a kwestia hostowania tego na swoim serwerze i stworzenie panelu do logowania dla klientów nie wchodzi w grę? powiedz coś więcej co to za projekt, do czego ma służyć (napisz tyle ile chcesz, byle dało się zrozumieć sam sens apki)
  • Odpowiedz
@Kramarz: Rozwiązywałem podobne przypadki od strony prawnej tzn. umocowania tego wszystkiego umowami, techniczne kwestie to już drugorzędne sprawy. Jeśli masz pytania czy chciałbyś wprost pomocy przy tym to zapraszam na PW :)
  • Odpowiedz
@beee: no wlasnie to jest jedyna opcja jaka widze na ta chwile, dlatego napisalem ten post zeby zobaczyc czy ktos wymyslil w swojej sytuacji jakies ciekawsze rozwiazanie.
widze to tak że kazdy zarejestrowany uzytkownik bedzie musial podac firme z jakiej sie rejestruje, a w bazie beda firmy wraz z datami waznosci licencji, , waznosc sprawdzana za kazdym logowaniem, jak wygasnie to konto jest nie do uzytko az do oplaty licencji (
  • Odpowiedz
@Kramarz: najłatwiej zrobić to jako SaaS i tyle. Klient przestaje płacić = ucinasz mu dostęp. Jak sobie zażyczy własną instancję na oddzielnym serwerze to proszę bardzo, za większą opłatą, ale i tak bym postawił warunek, że to ja odpowiadam za hostowanie tego i wykupił jakieś heroku czy coś takiego.
  • Odpowiedz
@KrzysztofKrawczyk: Fajnie ze podzielasz moje zdanie, aplikacja w tej chwili wlasnie stoi na heroku. Z tego co czytałem to jest w stanie w zupełności obsluzyc 70,000 unikalnych wizyt dziennie na tej opcji FREE, wieć Wystarczy aż ponad moje aktalne potrzeby :)
  • Odpowiedz