Pergunta

Eu estou querendo saber alguma forma eficiente de esconder o nosso código Silverlight. Eu sei que há algumas obfuscators disponíveis, mas parece que as pessoas podem cortar isso também. Alguém tem qualquer sucesso nesta frente?

Foi útil?

Solução

Pragma No-Cache na página que hospeda o aplicativo Silverlight irá impedir que o navegador do cache do XAP, em vez disso, vai lê-lo por streaming a partir do servidor web. Isso vai tornar mais difícil para espreitadelas para obter o XAP. Obfuscation vai tornar mais difícil ainda.

Também certifique-se o aplicativo está hospedado em https, a autenticação ocorrem fora do aplicativo principal. Desta forma, o fluxo de XAP é codificado no caminho para baixo.

Outras dicas

Você realmente não pode esconder qualquer coisa que é transmitido para o cliente. Se as pessoas querem descobrir isso, eles vão.

Você precisa colocar qualquer código proprietário em seu back-end onde as máquinas cliente não podem chegar a ele.

No. O navegador do cliente deve ser capaz de ler o código, portanto, é vulnerável a hackers.

Aqui está um pequeno artigo sobre a forma de ofuscar um arquivo XAP

http://www.rudigrobler.net/Blog/obfuscating-silverlight

Você pode complicar o trabalho do potencial hacker baixando fragmentos ofuscado de seu aplicativo durante a execução, usando MEF por exemplo. Escusado será dizer que é interessante se sua aplicação é grande o suficiente para que esta velocidade astuce-se o tempo de inicialização em vez de dificultar a experiência do usuário.

Não vai impedir que um hacker valorous de obter o seu código (na mão nenhum método pode evitar isso, como o plugin Silverlight deve ser capaz de executá-lo), mas o astuce vai complicar sua tarefa muito.

impedindo que o navegador cache do XAP é inútil, como o uso de HTTPS, como é muito mais fácil para um atacante a usar algo tão complicado como o Firebug para obter o XAP do que olhar para ele no cache do navegador ou usando um Man in the Middle ataque.

Eu imagino que se você tivesse muita motivação, você pode:

  • ofuscar a cada montagens
  • uso dinâmico carregado XAPs
  • criptografar a dinâmica carregado XAP serverside e decifrá-lo do lado do cliente usando um enviado chave dynamicly gerado por um webservice (não no mesmo pedido. E não reutilizar a chave.)

Ele não vai impedir o atacante de obter o seu código, mas ele terá que analisar o seu XAP inicial (ofuscado) para entender o código de descriptografia, pegar a chave, obter o (ofuscado também) dinâmica criptografado carregado XAP, decifrá-lo , então conseguem ofuscar-lo, então entendo como ele se conecta-se na aplicação. Não é o mesmo que usar HTTPS, porque aqui o processo de criptografia e descriptografia é feito no aplicativo para que as ferramentas como o Firebug ou violinista se tornam inúteis.

Hem. Nada pode impedir que alguém ler o seu código. Mas você pode torná-lo não vale a pena seu tempo. Você não tem que usar todas as idéias aqui e tenho certeza de que você pode encontrar outras pessoas, mas certifique-se que a implementação de tais medidas valem o seu tempo também.

De qualquer maneira, foi bastante engraçado de escrever isto: p

Você não pode esconder (pelo menos não não-trivialmente) arquivos XAP. Mas você pode ofuscar-los. Ofuscação não é uma resposta definitiva, mas o seu início um e pode dar muito boa proteção.

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