locked
Código aspx é compilado assim como: .java? RRS feed

  • Pergunta

  • Senhores,

    Gostaria de saber se quando publico meu site em um servidor web, desses que pagamos uma quantia por mês para utilizarmos seus recursos, corro o risco de ter os meus fontes copiados, plagiando assim todo o meu sistema?

    Existe alguma forma de me previnir desta situação em projetos ASP .Net?

    Desde já agradeço a atenção dos colegas.

    terça-feira, 5 de dezembro de 2006 20:49

Respostas

  • Leo,

    no ASP.NET 2.0, o padrão é enviar os fontes para o servidor. No ASP.NET 1.X/Visual Studio 2003, isso não funcionava dessa maneira, já que era gerada uma DLL (compilada em código intermediário - IL - semelhante ao bytecode do Java). No ASP.NET 2.0, você tem duas opções:

    1) pré-compilar suas páginas, inclusive com a possibilidade de compilar o código HTML. Nesse caso, é gerada uma DLL para cada página. Mais detalhes em:

    http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=47

    2) utilizar o mesmo funcionamento do ASP.NET 1.X e VS 2003, ou seja, gerar uma DLL para cada  projeto. Isso é possível através de um add-in para o Visual Studio 2005 chamado Web Application Project. Veja mais a respeito em:

    http://thespoke.net/blogs/oneda/archive/2006/05/09/956438.aspx

    Em qualquer dos casos (e mesmo em Java), não há garantia de que seu código não possa sofrer engenharia reversa. Aliás, para o .NET, existe uma ferramenta chamada Reflector que obtém com precisão o código original. Veja em:

    http://www.aisto.com/roeder/dotnet/

    O que se costuma fazer nesses casos é utilizar ferramentas do tipo Obfuscator (elas também existem em Java), que faz algumas alterações no código intermediário com o objetivo de dificultar a engenharia reversa. Há uma thread que discute isso em:

    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=625997&SiteID=21

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    quarta-feira, 6 de dezembro de 2006 11:51
  • Fábio,

    sim, o conceito é o mesmo. Como eu disse, costuma-se utilizar ferramentas do tipo Obfuscator, para dar uma garantia a mais, mas nada definitiva...

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    quinta-feira, 7 de dezembro de 2006 11:02

Todas as Respostas

  • Leo,

    no ASP.NET 2.0, o padrão é enviar os fontes para o servidor. No ASP.NET 1.X/Visual Studio 2003, isso não funcionava dessa maneira, já que era gerada uma DLL (compilada em código intermediário - IL - semelhante ao bytecode do Java). No ASP.NET 2.0, você tem duas opções:

    1) pré-compilar suas páginas, inclusive com a possibilidade de compilar o código HTML. Nesse caso, é gerada uma DLL para cada página. Mais detalhes em:

    http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=47

    2) utilizar o mesmo funcionamento do ASP.NET 1.X e VS 2003, ou seja, gerar uma DLL para cada  projeto. Isso é possível através de um add-in para o Visual Studio 2005 chamado Web Application Project. Veja mais a respeito em:

    http://thespoke.net/blogs/oneda/archive/2006/05/09/956438.aspx

    Em qualquer dos casos (e mesmo em Java), não há garantia de que seu código não possa sofrer engenharia reversa. Aliás, para o .NET, existe uma ferramenta chamada Reflector que obtém com precisão o código original. Veja em:

    http://www.aisto.com/roeder/dotnet/

    O que se costuma fazer nesses casos é utilizar ferramentas do tipo Obfuscator (elas também existem em Java), que faz algumas alterações no código intermediário com o objetivo de dificultar a engenharia reversa. Há uma thread que discute isso em:

    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=625997&SiteID=21

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    quarta-feira, 6 de dezembro de 2006 11:51
  • Caro Ricardo,

    Muito obrigado pela sua dica, me foi muito útil.

    Estarei tomando minhas providências quanto a esse assunto.

    Até breve.

    quarta-feira, 6 de dezembro de 2006 20:15
  • Bom dia, mas na versão 2.0 eu tb gero as dlls, correto? Mesmo com a versão 2005 do visual studio eu consigo reverter a dll gerada?
    quinta-feira, 7 de dezembro de 2006 10:11
  • Fábio,

    você se refere à uma aplicação ASP.NET 2.0? Neste caso, o VS 2005 não gera dll por padrão. Para gerar, você tem as opções que disse no post anterior. Mesmo assim, a DLL gerada está sujeita a ser "revertida". Isso vale também para aplicações Windows ou qualquer outro tipo de aplicação .NET.

    Mesmo linguagens que geram código nativo da plataforma (ex: C ou C++) estão sujeitas a engenharia reversa. Talvez seja um pouco mais complicado, mas não é impossível.

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    quinta-feira, 7 de dezembro de 2006 10:34
  • Ricardo, perdi o chão agora..... estou transformando todas as aplicações asp para aspx (apanhando muito por sinal) com a finalidade de proteger meu código, pelo visto atoa então!

    Java tb é assim?

    Grato!

     

    quinta-feira, 7 de dezembro de 2006 10:50
  • Fábio,

    sim, o conceito é o mesmo. Como eu disse, costuma-se utilizar ferramentas do tipo Obfuscator, para dar uma garantia a mais, mas nada definitiva...

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    quinta-feira, 7 de dezembro de 2006 11:02
  • ok Ricardo, obrigado!
    quinta-feira, 7 de dezembro de 2006 13:08
  • Acho que nesses casos o melhor é ter o próprio servidor. Assim ninguém vai meter a mão onde não foi chamado.
    sexta-feira, 8 de dezembro de 2006 12:41
  • Mas no meu caso não dá para ter um servidor próprio.... nós distribuímos a aplicação junto com o hardware.

    Os clientes sim tem servidor próprio.

    sexta-feira, 8 de dezembro de 2006 13:42
  • Understand...
    domingo, 10 de dezembro de 2006 23:30