Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Proteggere il proprio lavoro dall'hosting provider

    Mi piacerebbe realizzare un software di calcolo on-line usando asp.net ma non so come proteggere il mio codice dall'hosting provider.

    Ho deciso di mettere su un dominio il mio programma per 2 motivi:

    1) decidere chi può usare un determinato software e per quanto tempo
    2) proteggere il mio codice sorgente

    Non conosco asp.net ma se non ho capito male é come il php ovvero il codice si salva in file di testo opportunamente salvati con estensione asp.net.

    C'é qualche sistema per proteggere il mio codice?

    Ciao e grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    Ciao

    oggi come oggi proteggere al 100% un SW immagino tu sappia sia impossibile ( disassemblatori, reverse engineering, etc ... )
    Indubbiamente il primo passo è fornire una versione precompilata della tua applicazione, puoi anche sfruttare le funzionalità di Publish di Visual Studio per effettuare direttamente la copia sul provider. Questo eviterà di fornire i files vb ( o cs ) insieme al markup dell'applicazione


    Trattandosi di codice managed ( ovvero non tradotto il linguaggio macchina ) tornare al codice scritto da te non è cmq un'operazione da geni dell'assembly. Per questo motivo ( se ritieni il tuo codice così interessante da voler essere rubato e se pensi che il problema sussista ) esiste uno strumento detto Dotfuscator che dovrebbe proprio riscrivere il tuo codice per renderlo ( uso il condizionale perché non l'ho mai utilizzato, in ogni caso qui

    http://msdn.microsoft.com/it-it/library/ms227240(v=vs.71).aspx

    dovresti trovare le info necessarie )

    spero di esserti stato utile

    Ciao

  3. #3
    Non riesco a capire la tua risposta. Provo a riformulare la domanda. E' possibile mettere sul server un programma in cui il codice asp.net non sia leggibile? Il css e l'html si possono anche leggere non mi frega una mazza ma il codice che fa il calcolo mi piacerebbe proteggerlo.
    Ti faccio un esempio (perdona il linguaggio grezzo):
    visual basic 6 -> scrivo il codice (codice visibile) -> creo il .exe (codice invisibile a meno di usare diavolerie varie)
    con asp c'è un sistema per avere almeno un codice invisibile copiabile da utenti smaliziati oppure é completamente impensabile?
    So che hai già risposto ma non ho capito un mazza... scusa l'ignoranza...

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Il tuo codice viene riassunto in una DLL e non sara' mai protetto al 100% fin quando lo ospitano altri.

    Cio' senza contare DotFuscator, neanche io l'ho mai usato.

    L'estensione "asp.net" comunque non esiste, alla fine sono per la maggior parte

    .aspx (cioe' l'HTML)

    e

    .cs
    .vb

    secondo il linguaggio.

    Ma se pubblichi solo i file necessari, ripeto, il codice NON html (contenuto nei files .aspx) viene riassunto in una DLL...

  5. #5
    Non capisco la terminologia "viene riassunto in una DLL". E' giusto oppure no dire quanto segue:

    Sul dominio avrò:

    1.file .dll che contengono i codici necessari per fare il calcolo
    2.file .css per i fogli di stili
    3.file .aspx che dinamicamente dicono al browser i codici .html, .css da usare per costruire la grafica e i file .dll da impiegare per il calcolo dei numeri da inserire nei vari tag della pagina

    Se ho vagamente capito ho queste domande:

    asp.net si trova anche nei file .dll?
    é possibile racchiudere tutto il "cuore del calcolo" in questi file .dll in modo da poterli usare per creare software di calcolo funzionanti anche sul pc?

    Mi piacerebbe creare un software che giri su windows usando visual studio e racchiudere il cuore di calcolo in un file .dll o in un gruppo di file .dll in modo tale da avere un solo codice di calcolo. In pratica mi piacerebbe:
    A.scrivere un solo codice di calcolo valido ovunque (.dll)
    B.creare velocemente un'interfaccia grafica per windows anche senza effetti grafici (come l'Applicazione Windows Form per C# presente su visual studio) che implementi quello creato al punto A
    C.creare un'interfaccia grafica per il sito con i classici linguaggi (aspx, css, html, flash, javascript, ecc...) che implementi il codice relativo al punto A

    Scusa se sono un po' grezzo ma non sono un programmatore e prima di imparare un linguaggio vorrei essere sicuro che sia quello adatto a me e capire il metodo di funzionamento e di "miscela" dei vari linguaggi.

    Ciao e grazie

    P.S.: Non voglio mascherare il mio codice al 100% però non vorrei neppure che per leggere il codice del punto A bastasse notepad!

  6. #6
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    ti devi scrivere una Libreria di classi con Visual Studio (contenete tutte le classi di calcolo che vuoi) e poi la compili e ottini una dll. Questa dll non è leggibile con un semplice notepad ma ti è stato detto 1000 volte allo stato attuale è possibile ricostrutire il codice sorgente da una dll quindi fatti due conti.

  7. #7
    Originariamente inviato da GabbOne
    ti devi scrivere una Libreria di classi con Visual Studio (contenete tutte le classi di calcolo che vuoi) e poi la compili e ottini una dll. Questa dll non è leggibile con un semplice notepad ma ti è stato detto 1000 volte allo stato attuale è possibile ricostrutire il codice sorgente da una dll quindi fatti due conti.
    non capisco...

  8. #8
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    passo1.
    Un progetto aspnet è fatto da diverse pagine .aspx alle quali è collegata una pagina .cs che contiene la logica della pagina stessa che al 90% è fatta dai gestori evento dei controlli presenti nella pagina. Tu hai un bottone nella pagina aspx e nella cs scrivi cosa fa quel bottone (chi/aspx, cosa/cs).
    Quando devi pubblicare un sito web invece di copiare di sana pianta tutti i file in remoto puoi usare lo strumento di pubblicazione di visual studio. Questo strumento raccoglie in automatico tutti i file cs del progetto e li compila in una dll che mette nella cartella /bin. Il prodotto di questo procedimento è cio che devi pubblicare: in "chiaro" ci saranno solo le pagine aspx che conterranno i controlli e puoi ci sarà una cartella bin con dentro il file dll.

    passo 2, riutilizzare il codice dei calcoli.
    Se hai una label e un pulsante dentro una pagina e vuoi che alla pressione del tasto la label mostri il risultato di un calcolo molto probabilmente scriverai un gestore evento del click nel file cs cosi:
    codice:
        label1.Text = 3 + 2 + 5 + 6; //una logica anche se mooolto semplice.
    nel caso sopra la "logica" è molto semplice ma nella realtà molto spesso si creano degli handler pieni di codice. La cosa presenta due svantaggi: troppo codice = difficile manutenzione e impossibilita di riutilizzare la logica in un altro progetto (magari winform).

    Generalmente un gestore evento dovrebbe essere cosi:
    codice:
        //raccolgo gli input dalla pagina
        int a = Convert.ToInt32(labelA.Text);
        int b = Convert.ToInt32(labelB.Text);
    
        //Faccio i calcoli richiamando un metodo esterno
        ClasseDiCalcolo c = new ClasseDiCalcolo(); //non uso una using per mantenere semplice l'esempio
        int ris = c.Calcola(a,b);
    
        //stampo i risultati
        labelRis.Text = ris.ToString();
    Pagine cosi rimangono sempre molto pulite anche quando le operazioni di calcolo sono complesse. Ma dove è definita la classe ClasseDiCalcolo che contiene il metodo Calcola? In una libreria esterna. Con visual studio puoi crearle con il progetto Libreria di Classi e li dentro ti crei tutte le classi e i metodi di calcolo. Il modo piu semplice (per ora) di operare è aggiungere il progetto libreria di classi nella stessa soluzione del progetto asp.net (file - nuovo progetto e spunta la voce aggiungi a soluzione) e aggiungere nei riferimenti del progetto asp.net il progetto libreria di classi (da esplora soluzione tasto destro su riferimenti del prog asp.net - aggiungi riferimento). A questo punto as.net referenzia il progetto esterno che puoi usare scrivendo la using in testa al file o facendoti aiutare da intellisense. Quando pubblicherai ci saranno due dll, una dei file cs del progetto aspnet e l'altra relativa al progetto libreria di classi.

    passo3:
    le dll sebbene non siano comprensibili aprendole con notepad possono facilmente essere decompilate. Se pensi che il tuo codice debba essere messo al sicuro puoi usare gli strumenti citati su (tipo dotfuscator) per nasconderle (ma non del tutto).

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.