Domanda

Non capisco bene come funzioni il codice Silverlight nel browser. Gli assembly vengono scaricati sul computer client? C'è qualche possibilità che il codice venga decompilato usando Reflector o uno strumento simile? In tal caso, quali opzioni è necessario proteggere il codice? Gli offuscatori .net funzionano con Silverlight?

È stato utile?

Soluzione

Per visualizzare un'applicazione Silverlight, il client scarica un file .xap che contiene la dll e un xml di configurazione e risorse opzionali. La dll contiene il codice c # compilato che viene eseguito in un runtime Silverlight nel computer client. Il runtime di Silverlight è fondamentalmente un sottoinsieme del runtime completo .net. Quindi il punto è che l'utente ottiene il codice in DLL e quindi può utilizzare gli strumenti per ottenere il codice sorgente originale. Quindi al massimo puoi fare l'offuscamento. Ancora per codice molto critico che non dovrebbe essere l'opzione. Puoi usare un altro modo (WCF o altri servizi web per nascondere una parte del tuo codice) se urla per le tue necessità.

Altri suggerimenti

Ogni volta che ci si trova in un browser Web, tutto il codice lato client viene scaricato sulla macchina e può essere esaminato dall'utente. Questo vale per Javascript, Flash e Silverlight.

Se hai un codice proprietario che deve assolutamente essere nascosto, devi metterlo sul server ed esporre un'API che i client possono chiamare per mostrare informazioni all'utente.

Se vuoi vedere quanto è facile guardare il codice in un'app di Silverlight, esegui SilverlightSpy testo del link di FirstFloor . Finché hai .NET Reflector installato potrai vedere (come interagisci con l'app) tutto il codice sorgente inclusi i file xaml.

Poiché il codice viene scaricato sul client (e anche cercando di impedirlo con pragma no-cache non funzionerà poiché possono colpire l'URL) dovrai proteggere il tuo codice mantenendo una logica importante sul server.

Se hai paura che qualcuno rubi la tua proprietà intellettuale e che la legge non sia sufficiente, allora dovrai offuscare il tuo codice. Ma non chiamerei questa protezione per dire, ma un deterrente per il retroingegnere casual.

Mettere un pragma -Nessuna cache- eviterà che .xap sia archiviato sulla macchina, invece verrà trasmesso in streaming dal plug-in Silverlight. Senza il pragma il file .xap è archiviato nei file temporanei di Internet.

Mettere l'applicazione su una pagina su https proteggerà ulteriormente la trasmissione del .xap

Se possibile, richiedere l'autenticazione per visualizzare la pagina Web / il file .xap (grazie Joel)

Emrah,

Sì, è possibile offuscare l'applicazione SL.

Sì, i file xap di Silverlight non sono altro che file zip con i tuoi assembly in essi contenuti, quindi necessitano di protezione tramite offuscamento. Prova Crypto Obfuscator - offusca direttamente i file xap, può anche offuscare XAML file negli assiemi rinominando i riferimenti di classe, eliminando i commenti, gli spazi bianchi, le nuove righe, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top