Diskuze: Prodej desktop aplikace - trial verze

Podnikání Prodej desktop aplikace - trial verze

Avatar
Elisse
Člen
Avatar
Elisse:

Zdravím, rád bych se zeptal jaké jsou vaše názory zkušenosti jak zabezpečit desktop aplikaci aby ji nikdo nezačal používat bez zaplacení. :)

Příklad: Pošlu zákazníkovy na otestování aplikaci na otestování, co se mu líbí, nelíbí atp. a jak se zajistit, že si ji nenechá přestane komunikovat a nazdar.

Jediné řešení mě napadlo podle času, nastavit v kódu nějaký čas do kterého aplikace půjde a pak už smůla, druhá věc trošku vylepšená, že by se nebral systémový čas, ale v případě připojení k internetu by se četl čas někde na internetu aby to nešlo obejít změnou času v systému.

Někdo prosím nějaké návrhy? :) díky moc

 
Odpovědět 14. listopadu 15:43
Avatar
Odpovídá na Elisse
Dominik Gavrecký:

Co to nápojit na nejakú API ?

Nahoru Odpovědět 14. listopadu 16:06
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Elisse
Člen
Avatar
Odpovídá na Dominik Gavrecký
Elisse:

Co tím máš konkrétně na mysli?

 
Nahoru Odpovědět 14. listopadu 16:10
Avatar
Odpovídá na Elisse
Dominik Gavrecký:

Kolega to riešil tak ze napojil systém na Json na svojom webe ... kde hodil názov systému mení klienta a ci je povolený alebo zakázaný ...

Nahoru Odpovědět 14. listopadu 16:21
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Elisse
Člen
Avatar
Odpovídá na Dominik Gavrecký
Elisse:

Jo to zní i hezky, ale nevidím v tom nějak výhodu ani od té časově limitované kontrolující datum na internetu.

Je to prakticky webová služba na víc proti pár řádkům kódu které smažu a překompiluju.

Nicméně ve finále obojí spočívá v tom být připojený na internet a kontrolovat na něm něco.

 
Nahoru Odpovědět 14. listopadu 16:27
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Takové nejlepší řešení při poměru spolehlivost/jed­noduchost je do aplikace zakomponovaat klíče, takže při spuštění si zjistí, jestli už byl vložen a pokud ano, zkontroluje si online jeho platnost a podle toho se spustí/nespustí. K tomu si udělat malej web v PHPku, kde bude databáze klíčů a jedna stránka, která v GET dostane klíč a vrátí true/false. Když si někdo aplikaci koupí, vložíš ručně do db nějaký klíč co sis vygeneroval mlácením do klávesnice a pošleš mu ho.

Ale pokud to je pro jednoho člověka a nebude o to zájem, tak si v aplikaci hned při spuštění zjisti čas z nějakého NTP serveru, ten není závislý na systémovém času a flákni tam jednu podmínku. Až ti zaplatí, tak to zakomentuješ a uděláš znova build, který mu pošleš. Řešení je to jednoduché, ale pokud hodláš aplikaci prodat více lidem, tak zvol spíše první cestu.

Editováno 14. listopadu 16:28
Nahoru Odpovědět 14. listopadu 16:27
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Elisse
Člen
Avatar
Odpovídá na Adam Ježek
Elisse:

Jasné druhá možnost je právě jediné co mě napadlo pro individuální aplikaci, která není pro více zájemců. Očividně to asi bude jediné spolehlivé řešení no :)

 
Nahoru Odpovědět 14. listopadu 16:34
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Elisse
Adam Ježek:

Jediné určitě ne, ale nejjednodušší ano. Kdyby jsi sem napsal, co to má být za appku (web/dekstop/..., jazyk), tak bych určitě přišel na další věci.

Například u desktopu na win by jsi moh zapsat do registru datum prvního spuštění a po uplynutí pár dní by aplikace vyžadovala nějaký klíč (klidně i předdefinovaný v kódu), po jehož zadání by si do registrů zapsala, že už ho má a dál by fungovala. Je to podstatně složitější řešení, ale zase nemusíš klientovi posílat nový build aplikace, ale bude stačit pouze klíč.

Nahoru Odpovědět 14. listopadu 16:39
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Elisse
Člen
Avatar
Odpovídá na Adam Ježek
Elisse:

Hnedka v nadpisu je, že jde o desktop ;) A jinak C#,

Nicméně v tomhle řešení vidím, hnedka 2 problémy, které to jednoduché řešení přes aktuální čas nemá:

  • Vůbec to neřeší instalace na jiné PC (reinstally systému apod.)
  • Popřípadě někdo šikovný si to z těch registrů může i sám odmazat zase.
 
Nahoru Odpovědět 14. listopadu 16:43
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Elisse
Adam Ježek:

To ano, otázkou je, jak zdatnej je klient.
Taky může být v kódu předdefinovanej klíč i datum a do registrů (nebo může i jinam) si to jenom zapíše, že už to má klíč.

Nahoru Odpovědět 14. listopadu 16:46
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Elisse
Martin Dráb:

Můžeš také měřit celkovou dobu, po kterou je aplikace spuštěna (nebo používána, pokud její používání znamená, že nad ní uživatel vyvíjí nějakou aktivitu) a použít tuto metriku jako jednu z indicií, že trial verze vypršela.

A jinak ty internetové metody, co tady zmiňují ostatní. Tvá aplikace by ale měla fungovat i bez internetového připojení (pokud jej nevyžaduje samotný její účel), protože stále neplatí, že internet je všude a že každý má mobilní data a chce je obětovat.

Víc je již jen o tom, jak moc dobrou ochranu chceš implementovat. Pokud třeba ty zápisy do registru uděláš moc jednoduše, tak není problém je vypozorovat (např. skrz Regmon či Process Monitor). Je to pak jen o tom, zda uživateli za to stojí tu aplikaci krást, ať už z jakéhokoliv důvodu.

Nahoru Odpovědět 14. listopadu 16:50
2 + 2 = 5 for extremely large values of 2
Avatar
Elisse
Člen
Avatar
Odpovídá na Adam Ježek
Elisse:

Jo nad tím teď přemýšlím, že to se mi líbí asi nejvíc, že bude na hardcodované, že to bude fungovat do 20.listopadu a pak se musí zadat klíč, který může být klidně v textovým souboru vedle aplikace, to už je celkem jedno.

Zdatnost klienta těžko říct, jde hlavně o to, že vyvíjím malé záležitosti třeba na 14 dní pro někoho a rád bych měl způsob kterej si jednou udělám a pak už ho jen copy pastnu do každýho kódu a budu takříkajc relativně v bezpečí proti nezaplacení :)

 
Nahoru Odpovědět 14. listopadu 16:51
Avatar
Elisse
Člen
Avatar
Odpovídá na Martin Dráb
Elisse:

To je přesne ten problém, že bez internetu mi to přijde hodně neošetřené, sám moc dobře vím jak jsem jako "malej" používal nějakou aplikaci za pár tisíc asi rok ve virtuálce a když vypršela vždy nahodil virtuálku ze zálohy a znovu dokola :-O Zvlášť když jde o aplikace pro jednoho koncového uživatele, tak může být právě to jedno zaplacení nemilé :)

 
Nahoru Odpovědět 14. listopadu 16:55
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Elisse
Martin Dráb:

Ono tohle právě 100 % nevyřešíš. Můžeš dělat různé fígle, abys uživateli jeho ošklivé záměry ztížil; a to je asi tak všechno.

Je otázka, zda to nezkusit hnát také trochu právně, když to technicky 100 % nejde – prostě do licenční smlouvy napsat, jakým způsobem může být aplikace použita a případně ta omezení nějakým triviálnějším způsobem vynucovat. Když je ale uživatel obejde (a ty to máš šanci poznat například tak, že nekomunikuje, ale měl by žádat o novou verzi aplikace), můžeš zkusit začít vyhrožovat právními důsledky (zvláště, když se jedná o jednoho uživatele).

Jo nad tím teď přemýšlím, že to se mi líbí asi nejvíc, že bude na hardcodované, že to bude fungovat do 20.listopadu a pak se musí zadat klíč, který může být klidně v textovým souboru vedle aplikace, to už je celkem jedno.

Zdatný klient ti najde tyto hardcodované hodnoty a upraví si je tak, jak potřebuje. Jie pravda, že mu to můžeš stížit třeba tak, že budeš mít v aplikaci kód ověřující, zda někdo tvůj soubor nezměnil (popř. že některé části kódu nebyly změněny v paměti, protože obecně není třeba dělat změny na disku, stačí krátce po spuštění), ale tím problém pouze přesuneš na tento kód. A stejně to neřeší případy, kdy bys třeba chtěl, aby byla tvoje aplikacep oužívána pouze na jednom stroji.

Nahoru Odpovědět 14. listopadu 17:30
2 + 2 = 5 for extremely large values of 2
Avatar
Petr Čech (czubehead):

Zrovna v případě C# není hardcodování úplně zoufalé řešení, protože když to vypustíš jako ClickOnce (výchozí instalátor od Visual Studia) a klíč bude přímo v kódu, nespustí se to, když se v tom někdo bude hrabat. ClickOnce si totiž hlídá integritu a pokud je porušena, prostě nepoběží.

Nahoru Odpovědět 14. listopadu 17:45
Why so serious? -Joker
Avatar
Elisse
Člen
Avatar
Odpovídá na Martin Dráb
Elisse:

Tak asi tedy zůstanu jen u toho času a podmínkou internetu pro účely testování a po zaplacení čistá kompilace s odstraněním tédle podmínky no :)

 
Nahoru Odpovědět 14. listopadu 17:47
Avatar
Elisse
Člen
Avatar
Odpovídá na Petr Čech (czubehead)
Elisse:

hmm to taky nezní zle o tom něco nastuduju :)

 
Nahoru Odpovědět 14. listopadu 17:48
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Elisse
DarkCoder:

Tak takto jednoduché to opravdu není. To, aby nikdo nezačal používat aplikaci bez zaplacení, je snadné. Ale to, co je třeba zajistit je, aby se plně funkční aplikace dále nešířila a nevyužívali ji Ti, co ji zaplacenou nemají. Už to zde padlo, bezpodmínečně si utvoř licenční podmínky ať máš kontrolu nad nežádoucími úmysly ze strany uživatele. Nabízí se několik otázek. Vyžaduje aplikace připojení k internetu či nikoli? Jakým způsobem so dozvíš, že uživatel za aplikaci zaplatil, kde se co změní? A zásadní věc, jakým způsobem sdělíš a zpřístupníš všechny dostupné možnosti aplikace uživateli? Každopádně základem je kooperace klíčů, modifikace a vytváření virtuálních souborů a využívání časových funkcí.

 
Nahoru Odpovědět 14. listopadu 19:33
Avatar
Elisse
Člen
Avatar
Odpovídá na DarkCoder
Elisse:

Jak už jsem řekl, jedná se o individuální aplikace pro individuální lidi, takže bych moc neměl strach z nějakého šíření :) 99,9% lidí by pro to nikdy nenašlo žádné využití. Systém klíčů pro aplikaci pro jednoho cílového uživatele mi přijde celkem zbytečný :)

 
Nahoru Odpovědět 15. listopadu 10:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.