[gophp] Conexão Mysql - ocultar senha do banco

1,493 views
Skip to first unread message

Micox

unread,
May 7, 2010, 8:07:40 AM5/7/10
to GOPHP
Opa pessoal, beleza?

Seguinte: nunca gostei de no mysql_connect a senha do banco tá aberta
lá...

Há algum truque pra deixar ela mais oculta?

O que recomendam?

--
Você recebeu esta mensagem porque está inscrito na Lista "GOPHP" em Grupos do Google.
Para Postar: go...@googlegroups.com
Para Sair do Grupo: gophp-un...@googlegroups.com
Link: http://groups.google.com/group/gophp?hl=pt-BR

Renato Batista

unread,
May 7, 2010, 8:13:45 AM5/7/10
to goPHP goPHP
E ai blz?

Cara, o Zend usa o .ini para armazenar a senha, banco e etc. Seria uma opção, claro com amparo de segurança e etc.

Acho que a galera tem mais opniões ai.

Abraço.

Renato Batista

> Date: Fri, 7 May 2010 05:07:40 -0700
> Subject: [gophp] Conexão Mysql - ocultar senha do banco
> From: nair...@gmail.com
> To: go...@googlegroups.com

USE O MESSENGER DENTRO DO HOTMAIL SEM PRECISAR INSTALAR NADA. CLIQUE PARA VER COMO.

Hudson Figueredo

unread,
May 7, 2010, 8:32:55 AM5/7/10
to go...@googlegroups.com
<?php
$host = "localhost";
$user = "usuario";
$senha = "senha";
$dbname = "banco";
//conecta ao banco de dados
mysql_connect($host, $user, $senha) or die("Não foi possível conectar-se com o banco de dados");
//seleciona o banco de dados
mysql_select_db($dbname) or die("Não foi possível conectar-se com o banco de dados");
?>

utilizo um arquivo de conexão para cada banco e seto permissões de leitura apenas pelo usuário web, deixo esses arquivos em um diretório(pasta) a parte e uso include para chamá-los.

por outro lado é possível criptografar as senhas e armazená-las em banco e na variável senha você descriptografa

espero ter ajudado... abraços.
2010/5/7 Renato Batista <bati...@hotmail.com>



--
http://www.pquilinux.org
segurança e liberdade no seu desktop

Andre Rodovalho

unread,
May 7, 2010, 9:53:36 AM5/7/10
to go...@googlegroups.com
Outra opção é encriptar o arquivo php que contem as senhas...
ou ate mesmo encriptar um arquivo texto que contenham o codigo php,
com uma funcao mcrypt por exemplo, depois dar um eval na parada!

Tem que ver se realmente requere isso, pra falar a verdade nunca faço
essas coisas, não vi necessidade...

marc...@gmail.com

unread,
May 7, 2010, 10:44:29 AM5/7/10
to go...@googlegroups.com
Também não vejo necessidade de criptografar isso... mas;

Utilize um usuário que só possa conectar localhost ou do ip da aplicação, você pode fazer isso com grant no mysql ou qualquer outro banco.
http://www.debianhelp.co.uk/remotemysql.htm

Tenha um firewall na frente do seu banco de dados, deixa apenas a aplicação com permissão para acessa-lo. Veja sobre o greensql e até mesmo aplicações para database monitoring.

Como já dito, você pode separar o arquivo de senhas e deixar ele fora do DocumentRoot. Você pode setar permissões decentes no arquivo/diretorio que contem informações sensíveis com chmod/chown, você pode restringir ainda mais a nível de kernel, tirando até mesmo o poder de root, com lids, grsecurity, selinux, apparmor. E existem outros projetos a nível de kernel para ids, como St. Jude/St. Michel, randomização da stack com pax(que já está no grsecurity, não sei se o projeto continua sendo mantido a parte).

Da pra fazer muita coisa, é necessário conhecer o ambiente e as necessidades para apresentar uma solução adequada, grande abraço! E parabéns pelo conteúdo de qualidade que você posta Micox! Já aprendi muita coisa legal com você.

http://www.debianhelp.co.uk/remotemysql.htm
http://www.novell.com/linux/security/apparmor/selinux_comparison.html
http://www.cyberciti.biz/tips/selinux-vs-apparmor-vs-grsecurity.html
http://www.vivaolinux.com.br/artigo/Seguraca-extrema-com-LIDS/
http://www.vivaolinux.com.br/artigo/Seguranca-extrema-com-LIDS-novos-recursos/
http://solutions.mysql.com/solutions/all?type=21
http://solutions.mysql.com/solutions/all?type=18
http://www.slideshare.net/fisher.w.y/rootkit-on-linux-x86-v26
http://www.kernelhacking.com/rodrigo/docs/StMichael/rootkit-protection.ppt
http://www.tucancunix.net/ceh/bhusa/BHUSA08/speakers/Embleton_Sparks_SMM_Rookits/BH_US_08_Embleton_Sparks_SMM_Rootkits_WhitePaper.pdf
http://www.h2hc.com.br/repositorio/2006/Kernel-Land%20Rootkits.pps
http://www.kernelhacking.com/rodrigo/index.php?name=files
http://www.slideshare.net/fgsl/palestra-hardening-linux-por-juliano-bento-v-fgsl-e-i-sgsl

[]s
--
Att, Marcelo M. Fleury
Blog - http://marcelomf.blogspot.com/
Slides - http://www.slideshare.net/marcelomf/

"O primeiro dever da inteligência é desconfiar dela mesma." By Einstein

Wender Fernandes

unread,
May 7, 2010, 1:15:58 PM5/7/10
to go...@googlegroups.com
Olha eu tenho uma sugestão é meio que gambiarra mas funciona.

Eu gero um certificado cer.crt (ssl) e deixo uma classe responsavel por ler esse arquivo em sua inicialização quando uma conexao ao banco é solicitada.

Na geração desse certificado respondemos uma série de perguntas como data de validade, Pais, Estado, Cidade, frase secreta etc.

Eu simplesmente defino um desses campos para conter o usuario e senha. Todos os dados constantes nesse certificado sao criptografados.

É uma gambiarra, mas até que é legal.

Eric Rozetti Teixeira

unread,
May 7, 2010, 1:25:52 PM5/7/10
to go...@googlegroups.com
Pra começar não há necessidade de esconder algo que ninguem vai ver, somente as pessoas que tenho acesso ao servidor web onde esteja o arquivo php que contem os dados de acesso. e se fosse querer tirar o acesso e visualização para ver o arquivoq que contem os dados do banco é somente pelo cadastro de usuario de ftp colocar tal pasta que contem o arquivo php da conexao visivel para somente o administrador e a maquina para poder processa-lo assim qualquer outro usuario não poderia acessa-lo ou abri-lo para ver os dados. A outra opção que é a mais viavel nesse aspecto é esconder o código PHP, para isso vc tem alguns programas que fazem isso: IONCUBE, ZEND GUARD. Eles escondem o codigo de forma criptografada onde somente os interpretadores, que a maioria dos servidores tem instalado podem interpretar.
 
Talvez se nos explicasse qual é a razão expecifica para esconder os dados de acesso do banco no arquivo php de um servidor de acesso restrito com usuario e senha, poderiamos dar idéias melhores. Isso para variar de situação e necessidade.

--
Atenciosamente,
Eric Rozetti Teixeira

Wender Fernandes

unread,
May 7, 2010, 1:30:31 PM5/7/10
to go...@googlegroups.com
Por falar em ofuscador, alguem conhece algum free?

Andre Rodovalho

unread,
May 7, 2010, 4:49:31 PM5/7/10
to go...@googlegroups.com
Nossa, kra, esse ofuscador gratis... ate eu faria um melhor, dá uma olhada:
<?php
eval(gzinflate(base64_decode('
s7fjsrEvyCjg5eLlSk3OyFdQT8rPVUjJTFTITS1V
yE3MS1W3BsnZg9QBAA==
')));
?>

Isso só é ilegivel para quem não sabe nada de programação, além de ser
um processo pesado, ja que alem da decifração 64, ele teria que
"evalar" todo o codigo, que poderá ser bem grande!

obs.: desculpem a fuga ao tema!

Em 7 de maio de 2010 15:03, Eric Silva Magalhães
<eric.s...@gmail.com> escreveu:
> http://jcarlosrendon.morelosplaza.com/herramientas/ofuscador.php
>
>
>
>
>
> Em 7 de maio de 2010 14:30, Wender Fernandes <wende...@gmail.com>
> escreveu:
> --
> Atenciosamente,
> Eric Silva Magalhães
> Analista de Sistemas / Pós-Graduando em TI
> (62)8474-8266/ (62)8503-8861

marc...@gmail.com

unread,
May 7, 2010, 5:36:07 PM5/7/10
to go...@googlegroups.com
Com todo respeito a quem gosta de ofuscar código, mas isso pouco ou *nada* adianta. O melhor é ser open source mesmo e não ter que se preocupar com essas *picuinhas*.

[]s

Romulo Santos

unread,
May 7, 2010, 11:49:32 PM5/7/10
to go...@googlegroups.com
Open Source é perfeito pra muita coisa, mas não podemos ser radicais né, infelizmente existem situações onde os ofuscadores são necessários. Cada sistema é um sistema e cada caso é um caso. #noflameswarsplease

marc...@gmail.com

unread,
May 8, 2010, 3:08:00 AM5/8/10
to go...@googlegroups.com
Olá Romulo,

Realmente deve existir algum sistema que seja necessário ofuscar/criptografar(o que como eu disse, pouco ou nada adianta), podemos brincar, ofusque uma conexão mysql_connect(), poste o código e resto da lista tenta descobrir o usuário e senha ? Levando em consideração que: php codigoPhpOfuscado.php deve rodar, assim, simulamos uma maquina de um cliente com código ofuscado.

Infelizmente eu nunca desenvolvi um sistema tão ultra secreto que justificasse não ser open source, relacionado a segredo de estado ou coisa do tipo. Claro que praticamente tudo que desenvolvi como funcionário, não foi Open Source, por mera incapacidade de compreensão dos meus superiores.

Sinceramente, posso estar falando besteira, mas 90% das situações, os softwares de Goiás poderiam ser software livre, não são por mero desconhecimento do que é software livre, por achar que software livre é software gratuito e outras coisas mais. Mas enfim, como você disse, não vamos gerar flames. Afinal, estou aprendendo sobre mercado e principalmente, mercado de software livre. Mas o que eu tenho certeza é; existe uma carência muito grande :/. Desculpem o off.

[]s
--
Att, Marcelo M. Fleury
Blog - http://marcelomf.blogspot.com/
Slides - http://www.slideshare.net/marcelomf/

"O primeiro dever da inteligência é desconfiar dela mesma." By Einstein

Romulo Santos

unread,
May 8, 2010, 10:30:31 PM5/8/10
to go...@googlegroups.com
Superiores incompetentes são um problema sério em qualquer lugar, se fosse só aqui seria ótimo.
#noflameswarsplease http://elcabron.sjdr.com.br/category/tirinhas/dilbert/

marc...@gmail.com

unread,
May 9, 2010, 6:19:59 AM5/9/10
to go...@googlegroups.com
Na realidade, eu não disse que meus antigos superiores eram incompetentes e sim que faltava compreensão para entender o beneficio que o software livre poderia trazer para um determinado projeto, e nesse caso, acredito que pouca gente tem essa noção, se tem, qual empresa em gyn faz software livre ?

Não estou querendo gerar flames e nem ser off topic, então, se alguém quiser continuar a prosa, vamos abrir outra thread.

[]s
--
Att, Marcelo M. Fleury
Blog - http://marcelomf.blogspot.com/
Slides - http://www.slideshare.net/marcelomf/

"O primeiro dever da inteligência é desconfiar dela mesma." By Einstein

Micox

unread,
May 10, 2010, 7:30:26 AM5/10/10
to GOPHP
Ok. Obrigado pelas dicas pessoal.
Vou implantar algumas.

On 9 maio, 07:19, "marcel...@gmail.com" <marcel...@gmail.com> wrote:
> Na realidade, eu não disse que meus antigos superiores eram incompetentes e
> sim que faltava compreensão para entender o beneficio que o software livre
> poderia trazer para um determinado projeto, e nesse caso, acredito que pouca
> gente tem essa noção, se tem, qual empresa em gyn faz software livre ?
>
> Não estou querendo gerar flames e nem ser off topic, então, se alguém quiser
> continuar a prosa, vamos abrir outra thread.
>
> []s
>
> Em 8 de maio de 2010 23:30, Romulo Santos <romul...@gmail.com> escreveu:
>
> > Superiores incompetentes são um problema sério em qualquer lugar, se fosse
> > só aqui seria ótimo.
> > #noflameswarspleasehttp://elcabron.sjdr.com.br/category/tirinhas/dilbert/
>
> > --
> > Você recebeu esta mensagem porque está inscrito na Lista "GOPHP" em Grupos
> > do Google.
> > Para Postar: go...@googlegroups.com
> > Para Sair do Grupo: gophp-un...@googlegroups.com
> > Link:http://groups.google.com/group/gophp?hl=pt-BR
>
> --
> Att, Marcelo M. Fleury
> Blog -http://marcelomf.blogspot.com/
> Slides -http://www.slideshare.net/marcelomf/
>
> "O primeiro dever da inteligência é desconfiar dela mesma." By Einstein
>
> --
> Você recebeu esta mensagem porque está inscrito na Lista "GOPHP" em Grupos do Google.
> Para Postar: go...@googlegroups.com
> Para Sair do Grupo: gophp-un...@googlegroups.com
> Link:http://groups.google.com/group/gophp?hl=pt-BR

Eric Rozetti Teixeira

unread,
May 10, 2010, 8:25:40 AM5/10/10
to go...@googlegroups.com
Existe uma extensão do php que se chama bcompiler que faz basicamente a mesma coisa, ela é gratuita só que a na maioria dos servidores é difícil encontrar essa extensão instalada no php. O bcompiler não tem todos os recursos de um encoder de códigos php, porem o principal ele faz que é o codificar o código do php, e a codificação é feita via programação php usando funções bcompiler.
 
Pra quem tem sistemas onde tem o controle de instalar extensões no php, mas quando não da, dai complica.

Em 7 de maio de 2010 14:30, Wender Fernandes <wende...@gmail.com> escreveu:
Reply all
Reply to author
Forward
Message has been deleted
0 new messages