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,
Sou relativamente inexperiente em php e preciso de uma dica de como fazer uma "PÓS-AUTENTICAÇÃO" segura.
é o seguinte, o usuário acessa o meu site e ao digitar o usuário e senha eu faço a conferência para saber se é uma autenticação legítima (até aqui tudo bem), eu comparo os dados no mysql e assim sei se é ou não legitimo.
Porém não tenho idéia de como fazer de forma segura a autenticação constante desse usuário, ou seja, depois que ele fez a autenticação no site, como eu faço para em CADA PÁGINA que ele acessar, eu verificar se o usuário é legitimo (sem ele precisar ficar redigitando o usuário e senha).
Se possível peço que vocês me dêem sugestão, mas logo em seguida apontem quais as possiveis falhas nas sugestões que vocês irão dar.
Williams Duarte, com todo respeito, é justamente para não ter que ler coisas do tipo "se vira, procura", é que eu uso o forum como último recurso (apenas quando não encontro mesmo ^^), o forum é pra compartilhar conhecimento, quando eu possuo algum eu compartilho, ou pelo menos dou uma direção.
Com relação a minha questão, é que:
-O google está cheio de técnicas sobre "como cadastrar de forma segura PHP+Mysql", mas não é isso que eu quero saber.
-Eu já pesquisei sobre as sessões e cookies, porém muita gente diz que é bom, e outros dizem que não, Bem… isso deixa agente meio que perdido quando se é inexperiente em PHP.
-O problema principal é que não sei "o quanto posso confiar em uma Sessão ou Cookie", por isso é que pedi os prós e contras (e outras técnicas que possam elucidar um pouco o meu caminho para que a partir daí eu possa pesquisar técnicas a respeito sem precisar recorrer ao forum).
-Token eu também já vi, mas dizem que é fácil pra roubar.. e ai fudeu, fiquei sem ideias de como implementar algum sistema em que o usuário faça o login e eu possa de forma segura saber que é ele mesmo navengando em outras páginas do meu site.
Vamos lá:
-O google está cheio de técnicas sobre "como cadastrar de forma segura PHP+Mysql", mas não é isso que eu quero saber.
Você só terá as respostas certas se fizer as perguntas certas.
-Eu já pesquisei sobre as sessões e cookies, porém muita gente diz que é bom, e outros dizem que não, Bem… isso deixa agente meio que perdido quando se é inexperiente em PHP.
Dizer "X é bom, use" ou "X não é bom, não use" não é argumento válido, quando um argumento será válido? Quando a pessoa apontar de forma objetiva o que levou ela as conclusões que afirma e porque disto? Se ela mostrar como testou você poderá validar os dados.
-O problema principal é que não sei "o quanto posso confiar em uma Sessão ou Cookie", por isso é que pedi os prós e contras (e outras técnicas que possam elucidar um pouco o meu caminho para que a partir daí eu possa pesquisar técnicas a respeito sem precisar recorrer ao forum).
Notícia ruim, a menos que você queira investir em um token físico (pendrive, e-cpf, etc) você não tem muita solução.
-Token eu também já vi, mas dizem que é fácil pra roubar.. e ai fudeu, fiquei sem ideias de como implementar algum sistema em que o usuário faça o login e eu possa de forma segura saber que é ele mesmo navengando em outras páginas do meu site.
Dizem que é fácil roubar baseado no que?
-ESerra, você disse tudo com relação as perguntas certas, pois o fato é que "eu não tenho conhecimento suficiente para perguntar de forma correta o que eu procuro", e é um dos motivos pelo qual estou recorrendo ao forum.
-Basicamente o que eu encontrei nas minhas pesquisas foi que sessões e cookies podem ser roubados e/ou adulterados. (tudo bem, mas se isso for verdade, como eu me preparo para isso?)
-com relação ao token, ele precisar chegar ao computador do cliente em algum momento certo!? (se assim for então alguém pode de alguma forma pegar o token, ou não?).
-Se puder, gostaria que você desse uma luz no meu caminho, por exemplo, dizendo de forma resumida prós e contras, que você conhece e aconselha.
exemplo:
"criar: Guarde um token na sessão", "pró: fácil de implementar", "contra: hacker pode roubar a sessão assim assado etc".
-Não quero nada pronto, não é isso não como o Willian Duarte está achando. O que eu quero basicamente são como você disse "as perguntas certas", ou seja, quero alguns temas de técnicas com prós e contras resumidos, para que eu possa então fazer uma busca a respeito na internet.
Rapaz você estava indo até bem, mas quando disse:
"mas logo em seguida apontem quais as possiveis falhas nas sugestões que vocês irão dar."
Você praticamente fala "Corram atrás pra mim, que eu quero a resposta certa para o meu problema", eu levei quase um ano para deixar um sistema de login 99.8% seguro, não vejo problema em compartilhar, mas para isso fiz inúmeros testes e inúmeros cursos e pesquisas. Mas nunca fiz uma pergunta tão idiota dessas.
-ESerra, você disse tudo com relação as perguntas certas, pois o fato é que "eu não tenho conhecimento suficiente para perguntar de forma correta o que eu procuro", e é um dos motivos pelo qual estou recorrendo ao forum.
Se você não tem conhecimento suficiente para elaborar as perguntas significa que você pulou etapas, simples assim.
-Basicamente o que eu encontrei nas minhas pesquisas foi que sessões e cookies podem ser roubados e/ou adulterados. (tudo bem, mas se isso for verdade, como eu me preparo para isso?)
Primeiro entenda como funcionam as sessões e os cookies (comece pesquisando por isto), você verá que de forma simplista, a sessão é um tipo de cookie (lembre-se, isso é uma visão simplista), logo, dizer que "sessão e cookies" podem ser roubados, por si só não faz sentido, bastaria dizer que cookies podem ser roubados e a sessão estaria incluída e sim, isto é verdade.
-com relação ao token, ele precisar chegar ao computador do cliente em algum momento certo!? (se assim for então alguém pode de alguma forma pegar o token, ou não?).
Tokens podem ser usados para N coisas e não significa que vão melhorar a segurança em alguma coisa.
>
-Se puder, gostaria que você desse uma luz no meu caminho, por exemplo, dizendo de forma resumida prós e contras, que você conhece e aconselha.
exemplo:
"criar: Guarde um token na sessão", "pró: fácil de implementar", "contra: hacker pode roubar a sessão assim assado etc".
Vou ser franco, o mundo não é um livro de auto-ajuda... não espere que alguém vá elencar tópicos para você, quem já passou pela graduação sabe que o professor joga as bases e os alunos que se viram para ter o conhecimento, por isso citei lá em cima, se você não consegue chegar às perguntas certas, já pulou alguma coisa. De toda sorte, comece pesquisando como funcionam os cookies, não se importe com o que é seguro ou inseguro e sim em entender como a coisa realmente funciona, pois quando você entender isto, ai sim você conseguirá achar o caminho. Se você tiver o mínimo domínio do inglês, recomendo a pesquisar usando aquela língua, o material é bem mais farto.
Willian, eu tenho uns 10 anos de programador e já me aventurei com blitz3d, unity(js, c#), arduino c++, java, shaders, etc.. sei o que você quer dizer (agente se esforça tanto e daí vem um mané querendo tudo pronto, e as vezes ficamos putos com isso).
Mas não me entenda mal, o que eu quero são apenas temas para eu estudar (pois sou iniciante em PHP):
-Imagine que eu quisesse sabe por exemplo:
-Qual os prós e contras de uma variavel $_GET? (você poderia simplemente me responder assim..)
"pró: pode ser salva como link pelo usuário, contra: xss, sql injection, etc."
e pronto!! A partir daí eu já saberia o que procurar para me defender, e nesse caminho outras falhas iriam se mostrar pra mim conforme eu fosse pesquisando.
Com relação ao tópico, direta ou indiretamente vocês já conseguiram me esclarecer algumas coisas.
Dentre elas a de que eu não terei muito escapatória de alguns elementos tradicionais do login (como os que você citaram acima).
A minha esperança era que me mostrassem alguma outra coisa que não tivesse me ocorrido, por exemplo algo em conjunto com a sessão para reforçar, ou então um "cuidado o hacker pode alterar isso, ou aquilo".
Obrigado por responderem, isso ajudou de alguma forma.
Agora voce foi mais coerente!
Comece por aqui, ou entre as mais votadas
http://stackoverflow.com/search?tab=votes&q=security%20login%20php
Basico voce já sabe paginas htpps, não guarde dados de login em sessão nem em cookie, erro muito comum.
Em um cookie/token criptografe dados do Navegador, caso mude, encerre a sessão imediatamente.
Alguns serviços oferecem faixa de ips ou geolocalizacao, se o cara não tiver dentro da faixa ou fora do raio, mate a sessão, também tem os logins de dois passos. Então é muita coisa não da pra explicar onde havera falhas, falhas já começa quando voce começa abrindo a publico o que voce fez para segurança de seu sistema.
Outra alternativa é estudar como os Frameworks tratam sua segurança, enfim é isso ae. ;)
Quer uma consultoria e ainda quer que aponte as falhas, essa é boa! <_<
Estude Sobre Sessões, Cookies e Google, ta cheio de Exemplos na Net de como ter um sistema de autenticação de usuário de forma segura.