Pergunta

Eu não entendo muito bem como o código Silverlight funciona dentro do navegador. São as assembleias baixado para a máquina cliente? Existe alguma chance do código sendo compilado com refletor ou alguma ferramenta similar? Se assim for, quais as opções que uma pessoa tem que proteger o código? Do .net obfuscators trabalho com o Silverlight?

Foi útil?

Solução

Para exibir um aplicativo Silverlight o cliente baixar um arquivo .xap que contém a dll e um xml configuração e recursos opcionais. A dll contém compilado de código C # que é executado em um tempo de execução Silverlight na máquina cliente. tempo de execução Silverlight é basicamente um subconjunto de tempo de execução .NET completa. Assim, o ponto é usuário recebe o código na dll e, em seguida, pode usar ferramentas para obter o código fonte original. Então, no máximo, você pode fazer é ofuscação. Ainda para código muito importante que não deve ser a opção. Você pode usar alguma outra forma (WCF ou outros webservices para esconder alguma parte do seu código pode ser) se ele grita a sua necessidade.

Outras dicas

Sempre que você estiver em um navegador web, todo o código do lado do cliente é baixado para a máquina e pode ser examinado pelo usuário. Isso vale para Javascript, Flash e Silverlight.

Se você tem o código proprietário que absolutamente deve ser escondido, então você precisa colocá-lo no servidor e expor uma API que os clientes podem ligar para mostrar informações para o usuário.

Se você quiser ver o quão fácil é olhar para o código em um aplicativo Silverlight basta executar SilverlightSpy link texto por firstfloor . Enquanto o seu tem .NET Reflector instalado você será capaz de ver (como você interage com o app) todo o código fonte incluindo os arquivos XAML.

Uma vez que o código não são baixadas para o cliente (e até mesmo tentando impedi-lo com Pragma no-cache não vai funcionar, uma vez que pode bater a URL) que você precisa para proteger seu código, mantendo a lógica importante no servidor.

Se o seu medo que alguém vai roubar sua propriedade intelectual e que a lei não é suficiente, então você vai precisar para ofuscar seu código. Mas eu não chamaria isso de proteção por dizer, mas um impedimento para a engenharia reversa casual.

Colocar um pragma -No cache-impedirá que o .xap de ser armazenado na máquina, em vez disso, será transmitido pelo plug-in Silverlight. Sem o pragma o arquivo .xap é armazenado nos arquivos temporários de internet.

Colocar o aplicativo em uma página em https irá proteger ainda mais a transmissão do .xap

Se possível exigir autenticação para visualizar o arquivo de página web / .xap (graças Joel)

Emrah,

Sim ofuscação é possível para aplicação SL.

Sim, arquivos Silverlight XAP são nada além de arquivos zip com suas montagens em-los, então eles fazem a proteção necessidade através de ofuscação. Dê Crypto Obfuscator uma tentativa - que ofusca diretamente arquivos XAP, também pode XAML Ofuscação arquivos em seus conjuntos, renomeando referências de classe, tirando comentários, espaços em branco, novas linhas, etc

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top