Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89

    [VB.NET]Attivazione Software via WEB

    Salve a tutti.

    Ho finito da poco un piccolo progetto e vorrei realizzare un sistema di attivazione per il software non proprio convenzionale. Vorrei abbandonare il codice seriale.
    Il programma è pensato per essere attivo con licenze della durata di 1 anno, che vanno rinnovate di volta in volta.
    Spiego brevemente il processo di attivazione che avevo in mente :

    1 ) L'utente scarica la versione demo del programma e la prova
    2 ) il programma smette di funzionare e chiede all'utente l'attivazione
    3 ) l'utente compila un form sul programma ( o su internet è indifferente ) dove inserisce tutti i dati per l'attivazione e procede al pagamento
    4 ) io o chi per me che riceve la richiesta di attivazione ed il pagamento provvede a creare un account per quell'utente sull'email specificata nel form precedente.
    5 ) L'email viene salvata in un database ONLINE che sarà ospitato su una delle nostre macchine accessibile da web.
    6 ) ad ogni avvio il programma si connette al DB remoto, controlla la riga con una select relativa all'email salvata nei settings del programma e se trova Attivo = 1 ( esempio stupido ) procede con l'avvio del programma altrimenti da un errore e richiede una nuova attivazione della licenza.

    Volevo sapere da voi, secondo le vostre esperienze se tutto questo è fattibile e utile. L'unico vero dubbio è sull'accessibilità di un database MYSQL ospitato su una mia macchina, dato che ovviamente nessuna compagnia di HOSTING WEB da accesso ai DB mysql ( a meno che, ovviamente, non si disponga di un server dedicato. Ma non è questo il caso )

    Ciao a tutti e grazie in anticipo !

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    crea un webservice molto semplice su uno spazio di hosting cosi non hai bisogno di interrogare il db da remoto. Tu interroghi il servizio e il servizio interroga il db
    Il servizio fallo il piu semplice possibile, un handler ashx che ritorna una stringa xml (<stato attivato="true"></stato>) puo andare bene.
    Lato client crea una classe statica con un metodo bool IsTrial() che interroga il servizio e ti dice se l'applicazione è una trial o meno.

    La logica in ogni caso sembra un po troppo ingenua. Innaniztutto insieme all'email mandaci pure il numero di serie della copia e tieni traccia di tutte le richieste al servizio specialmente di quelle fallite che sono un chiaro segno di tentativo di trovare un email valida.

    in secondo luogo a monte sei comunque vulnerabile: basta poco per trovare lato client il punto in cui fai il controllo IsTrial e basta poco per modificare il codice ed aggirare il controllo. Qui la difesa è l'elusione. Per esempio potresti avere due classi statiche con metodo IsTrial una che richiami all'inizio con i nomi "in chiaro" e l'altra che richiami in punti indefiniti nel codice con nomi e modalità "elusive" (dai sfogo alla fantasia).

  3. #3
    Utente di HTML.it L'avatar di Typo
    Registrato dal
    Apr 2012
    Messaggi
    89
    ti ringrazio. Di webservice non so nulla. una buonissima occasione per studiarli a fondo ! per i consigli sulla sicurezza ci avevo pensato anche io e ti ringrazio molto per le dritte che sicuramente seguirò al dettaglio.


    un altra cosa utile probabilmente potrebbe essere quella di identificare il PC dell'utente ( tramite i vari seriali ) e limitare la licenza sull'uso di quel PC.
    Buona serata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.