2009-04-29 9 views
7

Opracowujemy aplikację Java EE z dowolną bazą danych do wyboru.Jak utworzyć bezpieczną licencjonowaną aplikację Java EE?

Będziemy sprzedawać klientom w oparciu o cenę licencji użytkownika. Jak się upewnić, że aplikacja jest używana zgodnie z naszymi warunkami, np. Niełatwo ją hakować? Czy są dostępne jakieś samouczki?

+2

Zobacz http://stackoverflow.com/questions/475216/python-applications-can-you-secure-your-code-somehow. Inny język, ale to samo błędne podejście. –

+1

Czytam odpowiedzi na to pytanie, ale nie jest to, czego chcę. Wiem, że wszystko można hakować, ale przynajmniej staramy się to utrudnić. –

+0

Czy ten wniosek został odrzucony przez kierownictwo? –

Odpowiedz

5

Bill Karwin's answer było najbardziej przydatne z odpowiedzi na pytanie wymienione w komentarzach. Zakładając, że będziesz kontynuował program "ochrony", spróbuj zrobić to, co konieczne. Wszystko inne może ogromnie frustruć użytkowników i prowadzi do niższych powtórzeń biznesowych i/lub zwiększonej chęci zhakowania się wokół twojego frustrującego systemu.

Zadając pytanie, trudno jest stwierdzić, czy każdy użytkownik zainstaluje aplikację. Jeśli tak, prawdopodobnie potrzebujesz kodu licencyjnego, który musi w jakiś sposób nawiązać z Tobą. Jeśli jest to klient-serwer, opcje są o wiele bardziej ograniczone; w rzeczywistości nie mogę wymyślić ani jednego rozwiązania, które kiedykolwiek zaprojektowałem w mojej głowie, ani nie spotkałem w praktyce, co mogłoby być frustrujące. Prawdopodobnie możesz tu również zainstalować rozwiązanie kodu licencji, z wyjątkiem kodu licencji, który w jakiś sposób zawierałby ładunek, który wskazywałby liczbę użytkowników, za które zapłacił, a następnie uniemożliwiał tworzenie/używanie użytkowników przekraczających tę liczbę. W tym momencie jednak naprawdę chodzisz tą linią frustracji, o której wspomniałem.

+0

To aplikacja typu klient-serwer. Użytkownicy używają broswer jako klienta. Serwer zostanie zainstalowany w sieci klientów. Każdy użytkownik będzie miał konto utworzone przez administratora, ale do numeru, na który kupił licencję. Jeśli osiągną to maksimum i chcą więcej licencji, mogą po prostu kupić i zaktualizować licencję w swoim systemie i gotowe. –

+0

W tym przypadku, powiedziałbym, używając klucza licencyjnego, aby wskazać, że odcięcie jest drogą do zrobienia. –

3

Jeśli możesz zaciemnić - to jest sposób na rozpoczęcie. Ale może to być bolesne, jeśli użyjesz inwersji struktur kontrolnych (np. Wiosny). Słyszałem, że można również zaciemnić kontekst wiosny, ale nigdy nie próbowałem. Również (tylko zgadywanie) mogą być pewne niespodzianki z odbicia, dynamiczne proxy i takie. Jeśli chodzi o licencjonowanie, mogę zasugerować użycie TrueLicense. Posiada bardzo elastyczne sposoby obsługi różnych aspektów ochrony, a także bezpłatne okresy próbne po wyjęciu z pudełka. Działa bardzo dobrze i ma świetną dokumentację.

0

Czy klienci płacą za obsługę tej aplikacji? Jeśli tak, to istnieje szansa, że ​​wsparcie to większa korzyść niż licencjonowanie samej aplikacji. Jeśli tak, możesz rozważyć zamknięcie aplikacji przez zablokowanie aplikacji, ale raczej zapewnienie obsługi autentycznych kopii oprogramowania (niezmodyfikowane kopie sprawdzone przez sumy kontrolne i takie). Wiele firm licencjonujących ten program będzie bardziej skłonnych do unikania jakichkolwiek modyfikacji (nawet jeśli prawdopodobieństwo, że będą one faktycznie potrzebne, jest prawdopodobnie niewielkie), aby nie narazić na szwank ich wsparcia.

FYI: W ten sposób Oracle zazwyczaj współpracuje z pakietem e-Business Suite. Możesz dowolnie modyfikować dowolny komponent. Życzymy powodzenia w uzyskaniu wsparcia!

0

Zobacz, jak Atlassian sprzedaje swoje produkty. Uważam, że jest to podejście, które działa bardzo dobrze i prawdopodobnie byłoby również dla ciebie. Uwaga: Subskrybowanie aktualizacji powinno być wartością dodaną!