Ir para o conteúdo
TvM

Encriptar uma connection string

Mensagens Recomendadas

TvM    0
TvM

Fiz um programa relativamente simples que acede a uma base de dados mysql e executa algumas queries.

Acontece que depois de compilado, com um simples editor hexadecimal é possível ver em texto essa "connection string" com o username e password.

Qual é será a melhor solução para encriptar ou o programa já compilado ou então pelo menos partes com alguma informação mais sensível??

Agradeço desde já qualquer resposta :P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

Eu geralmente quando tenho esse tipo de informações (connection strings) é usual por-se no ficheiro app.config, que é basicamente um ficheiro xml com toda as informações de configuração da aplicação.

Nos casos que é necessário proteger a informação, tem-se a possibilidade de a cifrar. Para isso evoca-se o método ProtectSection na secção correspondente.

Podes ler mais sobre isso aqui.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TvM    0
TvM

Eu também guardo essa info na "app".exe.config apenas o anexei ao executável em vez de criar o ficheiro separadamente.

ISso nao impede de quem fizer "decompiling" possa ver essa informaçao certo?

E um bom programa para encryptar e ofuscar um programa ja compilado?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

ISso nao impede de quem fizer "decompiling" possa ver essa informaçao certo?

E um bom programa para encryptar e ofuscar um programa ja compilado?

Impede porque essa informação não está sequer compilada. Está cifrada. A não ser que consigam decifrar a connectionString (duvido) não há maneira de obterem a connectionString.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

Aqui fica um exerto do que tenho em várias bibliotecas uteis.

Numa dada classe XPTO tenho este método.

public static void ProtectSection(string appPath, string sectionName, string provider) {
    Configuration config = ConfigurationManager.OpenExeConfiguration(appPath);
    ConfigurationSection section = config.GetSection(sectionName);
    if (section != null && !section.SectionInformation.IsProtected) {
        section.SectionInformation.ProtectSection(provider);
        config.Save();
    }
}

Depois no arranque do programa faço apenas

ClassXPTO.ProtectSection(Application.ExecutablePath, "connectionStrings", "RsaProtectedConfigurationProvider");

e ele cifra a secção connectionStrings que é onde defino todas as ligações.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TvM    0
TvM

;)

Ja consegui codificar o file seguindo  o teu exemplo.

Mas ainda tenho um pequeno problema, ainda me aparece a string no Settings.settings (  [global::System.Configuration.DefaultSettingValueAttribute("Driver={MySQL ODBC 3.51 Driver};SERVER=xpt.net;PORT=3306;DATABASE=blabla_database;USER=root;PASSWORD=xxx;OPTION=3")]

Como posso pro a ir buscar a string directamente ao file app.config?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade