La sicurezza dei file dll in un'applicazione Client / Server in .net [closed]

0

Scriverò un'applicazione client / server . Ci sono alcuni concetti ambigui in questo che non sono stato in grado di ottenere risposta dopo molte ore di ricerca.

Come tutti sappiamo, uno dei principali avvertimenti del framework .Net è che i file DLL possono essere decompilati e decodificati sul computer del cliente.

Ora la mia domanda è: posso inserire alcuni dei file DLL richiesti dal client sul server?

E se è vero, sarà completamente sicuro o sarà ancora aperto per essere decodificato / decompilato dai cracker?

    
posta Vahid 06.05.2015 - 11:15
fonte

1 risposta

1

Come menzionato in un commento sopra, ci sono due strategie di base per proteggere l'IP nel codice sorgente:

  1. Rendi il tuo codice sorgente più difficile da capire. Di solito questo avviene attraverso offuscamento . Gli Obfuscator tentano di rendere il codice sorgente difficile da compilare e / o difficile da capire una volta che sono stati compilati in retromarcia. Non sono esperto di strumenti di offuscamento quindi tutto ciò che posso fare è indicarti questo elenco e suggerirti di ricercare e inviare domande di follow-up, se presenti. L'offuscamento è "facile" nel senso che si ottiene lo strumento, eventualmente pagandolo, e poi lo si incorpora nel processo di compilazione.
  2. Mantenimento del codice sul server. Ciò comporta lo spostamento di alcune delle tue logiche dell'applicazione dal client al server. Ci sono molti motivi per spostare il codice sul server. Proteggere IP è uno. La logica che richiede l'hardware del server potrebbe essere un'altra (comune per le soluzioni mobili con bassa potenza di elaborazione). Questo è più difficile da implementare rispetto all'offuscamento in quanto influisce sull'architettura della tua applicazione. La nuova architettura avrebbe il client, anziché effettuare una chiamata di funzione locale, creando un RPC sul server per eseguire alcuni calcoli . SOAP potrebbe essere la tecnologia più comune, ma ce ne sono molte altre. La tecnologia esatta dipenderà da molti fattori, tra cui le piattaforme client e server (ad esempio: è un'app nativa .NET, un'app browser che accede a un server .NET, un'app mobile, ecc ...) e sei in grado di programmare.

Spero che questo aiuti.

    
risposta data 06.05.2015 - 21:02
fonte

Leggi altre domande sui tag