• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

cheires

Encripatção de passwords

13 mensagens neste tópico

Olá a todos.

Não sou muito experiente em PHP, mas tenho uns scripts feitos e a funcionar de acordo com o pretendido.

Esses scripts estão num servidor apache, em linux.

Nesses scripts php tenho sempre acesso a Base de Dados.

A minha pergunta é, é possível encriptar a password do Mysql?

Não tem sido o caso, mas caso haja uma intromissão não desejada, é mais uma password descoberta.

Aqui à tempos estive a ver um script em python e a password de acesso à BD estava encriptada.

Obrigado a todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim é possivel, mas se alguem conseguir entrar no server descobre sempre...

Pordes por exemplo na variavel de configuração $password ( por exemplo ) colocar a string ja encriptada, e quando vais a fazer o mysql_connect colocar lá o mcrypt a decriptar a password....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso também tenho esta dúvida... em md5 penso que não pois se meter a pass correcta encripta e envia o hash e nao dá... se meter o hash não dá para desencriptar logo também não dá... tens a base64, mas tens de meter base64_encode e se alguem tiver acesso ao script vai logo saber que é base64 e é só desencriptar...

O ideal nesta situação é o quê?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ideal nesta situação é o quê?

É preocupares-te mais com a administração do provider do teu server do que com isso. Quem entra pelo server dentro, vai-te sacar a password de qualquer modo, e mesmo encriptada, nada feito, portanto tem que se olhar mais de cima para a questão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então básicamente, não adianta tentar encriptar a password.

Basta apenas garantir que ninguém te entra no servidor?

Isso para mim não serve. O servidor pode ter vários tipo de acesso. Várias pessoas podem aceder ao servidor, e ter permissões para isso. O que não as impede de verem qual a password do MySql e fazerem brincadeiras.

Como disse no primeiro post, vi um script em Python que tinha isso implementado, tinha no campo password (de acesso à base de dados) vários caracteres que indicam encriptação, e não tinha, como sugerido, o algoritmo de decrypt quando se acede à BD.

Será que essa "feature" pode ser implementada do lado do MySql/SO? Sei que é possível gerar encriptações pelo SO Linux, não me lembra é como isso se faz, nem como proceder neste caso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se vais ter um servidor partilhado onde varias pessoas podem aceder ao servidor de varias formas, qualquer uma delas pode se souber como ganhar root, e sacar todas as passwords que lá tiveres.

Nesse caso a melhor solução é se vais usar um script PHP controlares o acesso ao folder onde tens a pass a connection string guardada. Mas ainda assim não tens garantias nenhumas de que não ta vão sacar.

Alternativas é utilizares algum script CGI e utilizares uma encriptação não padrão (algo baseado numa expressão matematica composta por uma parte explicita no codigo, e outra parte que vá ser lida a outro sitio qualquer tipo um mac-address ou algo do genero). Ainda assim a segurança é demasiado relativa, uma vez que se aceda ao servidor e se ganhe root, nada impede de chegar ao mysql com ou sem passwords encriptadas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se esses acessos ao código são a nível de FTP, e se tiveres acesso ssh ao servidor, cria as contas ftp à mão por linha de comandos, com acesso só onde queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A situação a que me referia era a de vários utilizadores poderem aceder ao servidor.

Mesmo que não tenham acesso ao ROOT, podem ver todos os ficheiros, e caso percebam, podem conseguir a password criando um programa para fazer o decrypt.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como posso proibir isso?

Tenho ideia que apenas se pode proibir a execução e alteração, a visualização, não sei como o fazer.

E sendo assim, fica o problema inicial resolvido. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Proibes o acesso ao folder onde tens os ficheiros .PHP com a respectiva connection string.

Assim nem visualizar, nem ler, nem aceder, nada. Ou proibes o acesso ao ficheiro. Logo que ninguém tenha acesso de SU, não tens problemas. É tão simples como definir permissões no ficheiro, deixas todas para creator/owner, e restringes o acesso aos restantes, se não puderes fazer isso ao nivel do ficheiro, faz ao nivel do directorio.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Proibes o acesso ao folder onde tens os ficheiros .PHP com a respectiva connection string.

Assim nem visualizar, nem ler, nem aceder, nada. Ou proibes o acesso ao ficheiro. Logo que ninguém tenha acesso de SU, não tens problemas. É tão simples como definir permissões no ficheiro, deixas todas para creator/owner, e restringes o acesso aos restantes, se não puderes fazer isso ao nivel do ficheiro, faz ao nivel do directorio.

Cumprimentos

Eu percebi o que pretendes, e isso tudo está assegurado, mas um user que tenha acesso ao servidor, mesmo sem ser SU, consegue percorrer as directorias e visualizar os ficheiros de configuração, etc, embora não os consiga modificar.

Um vulgar utilizador do servidor web não consegue saber isso, nem que saiba o nome do ficheiro.

O que pretendia era que nenhum outro utilizador do servidor (utilizador resgistado) tenha acesso ao conteúdo dos ficheiros.

Um exemplo:

Eu e tu partilhamos o mesmo PC com linux, como posso eu impedir-te de veres o conteúdo dos ficheiros criados por mim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes, és o Owner do file, eu não devo ter acesso ao ficheiro, a não ser que tenha permissões de SU, posso ver onde ele está, mas não posso ver o conteudo porque não tenho acesso. por exemplo basta que a permissão read esteja apenas disponivel para mim.

Basta que deixes mudes o owner pra ti, e retires a permissão read aos others.

-rw-rw----

Cumprimentos

0

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