Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

henrique-rafael

autenticação segura e continua de usuário registrado

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

-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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

-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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por PeeWee
      Pessoal, estou precisando de um código que mantenha o usuário logado no sistema, pois o interessante é que assim que ele acessar o site nao precise logar outra vez. Estou utilizando esse código:   $_SESSION['log_me_out_at'] = strtotime(date("Ymd ")."23:59:59");
      aparentemente nao funciona quando subi para o servidor, alguem tem uma dica?
    • Por henrique-rafael
      Olá galera,
      To com umas dúvidas em relação a segurança (estou desenvolvendo um site ecommerce, sou inexperiente).
      Em quais páginas eu deveria usar o protocolo HTTPS para segurança do usuário? (imagino que seja na página de "login", "cadastro de usuário", e "finalizar compra" (boleto, cartão de crédito, etc)???
      Porém caso sejam essas páginas mesmo, eu já adianto que o login e senha do usuário eu iria deixar em uma $_SESSION.
      Mas como a session esta disponível em todas as páginas que iniciam uma sessão, então surge outra dúvida:
      Pode alguém roubar o login e senha do usuário (além de outras coisas), caso isso fique na $_SESSION, ou alguém só irá interceptar essa informação quando houvesse um $_POST do usuário e senha do meu cliente???
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.