Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, apesar de ser um assunto bastante achado na internet, não são conclusivos. Eu acho muitas explicações diferentes onde não consigo definir se é realmente seguro um ou outro script. Gostaria de saber se alguém no forúm poderia ajudar em uma rotina ou tem um script no Git de login + sessões usando de forma mais segura possível.
Interessante seu link, li todo ele, inclusive os comentários. Mas da maneira que você falou, não faria consulta no banco de dados a cada página aberta no navegador? Somente consultaria as sessões e o cookie?
Ainda não entendo porque na internet colocam tutoriais sobre mysql e php que não seja usando PDO, e tutoriais com todos os cuidados de segurança. Hoje programo bem melhor, mas vejo hoje que a uns 2 anos atrás só fiz cagada.
Mas da maneira que você falou, não faria consulta no banco de dados a cada página aberta no navegador? Somente consultaria as sessões e o cookie?
Não! Somente as sessões e o cookie, é bem mais rápido do ficar gerando consulta no db, sem falar que, o que estaria no banco é estático. E nunca sabemos quem é que está por trás dos hosts "pirataria reversa de dados" e se sofrer um ataque de xss estes dados estariam expostos. Por este motivo que alguns dados tem que ser criptografado como "numero de cartões, documentos" e a senha gerado um hash.
>
Ainda não entendo porque na internet colocam tutoriais sobre mysql e php que não seja usando PDO, e tutoriais com todos os cuidados de segurança. Hoje programo bem melhor, mas vejo hoje que a uns 2 anos atrás só fiz cagada.
Sobre PDO, a lógica de login não muda, e a mesma usada em mysqli->, mysqli_, mysql_ e etc.
O que muda é como você manipula estas informações sensíveis.
Agora uma coisa é certa, tiro pelo os fóruns Brasileiros.
Um vem e pergunta!
- Meu login esta seguro?
Este usando mysql_ sem filtro nenhum!
- "Um" fala não!
e deixa alternativa, use pdo statement.
Em seguida vem 10 postando soluções mirabolantes e com funções enormes contra sql_injection.
E + ou - assim, você vota em um candidato sério, e vem 10 bebum e derruba seu voto, e como de costume a maioria vence, reforçando o ciclo, e este cria mais um tutorial da mesma coisa, só muda o endereço do site.
Os que aprenderam da forma correta, somente 3% geram conteúdos para outras pessoas.
E muitos já migraram para Frameworks e dificilmente vai gerar conteúdos para os mais novos, como login e senha, e se for gerar conteúdo é para os usuários de frameworks.
Aqui mesmo no fórum tinha um cara chamado Hinom que gerava muito conteúdo relevante através de suas respostas, mas infelizmente foi banido e este com certeza não volta mais.
O que você acha deste tutorial? http://blog.thiagobelem.net/criptografando-senhas-no-php-usando-bcrypt-blowfish/
Claro que aí não trata a sessão, mas o armazenamento da senha.
Utilizo bcript para encriptar alguns dados no db, mas não para senha, até porque não envio a senha do usuário via email quando ele deseja recuperar os dados de acesso, envio um link valido por 24 horas, ao clicar neste link abro um novo formulário para cadastrar uma nova senha.
Depois que lançaram a password_verify em (PHP 5 >= 5.5.0) utilizo a como padrão para gerar hash das senhas e recomendo, pois é que tem de mais seguro ate o momento.
e antes utiliza http://www.openwall.com/phpass/.
Muito boa a explanação Williams Duarte.
Não tens um exemplo de código para me nortear ? Pois sou iniciante em PHP.
Estou usando o PHP 5.4.16, será que atenderá ?
Um abraço e obrigado.
>
Muito boa a explanação Williams Duarte.
Não tens um exemplo de código para me nortear ? Pois sou iniciante em PHP.
Estou usando o PHP 5.4.16, será que atenderá ?
Um abraço e obrigado.
Sugiro vídeo aulas para quem esta começando.
http://www.mxmasters.com.br/categoria/programacao/logica-de-programacao/
http://www.videoaulasbrasil.com.br/categoria/php/
http://www.videoaulasbrasil.com.br/categoria/ajax/
http://www.mxmasters.com.br/categoria/programacao/jquery/
http://www.mxmasters.com.br/categoria/programacao/javascript/
http://www.videoaulasbrasil.com.br/categoria/javascript/
http://www.videoaulasbrasil.com.br/categoria/tableless/
http://www.upinside.com.br/videoaulas/categoria/video-aulas
http://www.upinside.com.br/videoaulas/categoria/cursos-online/php-com-mysql
http://www.mxmasters.com.br/categoria/programacao/php/
Boas aulas! =D
E espero em breve velo ajudando por aqui!
Obrigado pela informação.
E claro que terei o maior prazer em compartilhar conhecimento.
Um abraço.
Em meus sistemas faço 03 verificações!
02 por sessão e 01 por cookie simultaneamente.
Como você sabe, se o cookie estiver desativado não é possível gerar a PHPSESSID da session_start(), e se estiver desabilitado os cookies não tem como logar, retirando qualquer mistificação sobre os cookies.
Então eu crio um cookie de sessão com HttpOnly ativado para evitar ataques xss, neste cookie eu coloco a session_id e em cada reload em gero um novo session_id com session_regenerate_id() e gravo novamente esse cookie de validação.
Por que isso?
Caso o usuário use algum firebug na vida, copie e cole em outro navegador a session_id já mudou, caso a segurança das sessões esteja setado para low.
e as outras 02 de sessão eu gravo:
o id_usuario e o user_agent, o user agent eu gero um hash em sha1
Com essas 03 verificações nunca tive problema, vejo que tem tem gente que grava a session_id em banco de dados e fica comparando toda hora, outras que guarda login e senha nas sessões para fazer as validações.
Depois não sabe porque tem problemas.
Para entender melhor o que falei, segue um guia, ele ta em inglês.
http://stackoverflow.com/questions/549/the-definitive-guide-to-form-based-website-authentication#477579
Boa sorte.