Pergunta

Eu tenho tentado fazer um login seguro para o meu site que estou desenvolvendo.

Eu apenas não posso fazê-lo funcionar, eu uso o banco de dados MySQL com PHP.

Eu posso fazer o formulário para adicionar o usuário e suas informações para o banco de dados, mas eu não consigo fazê-lo funcionar com o login.

Que tipo de criptografia é utilizada com HTML <input type="password">?

Como faço para manter o usuário logado ao longo da sua visita ao meu site?

eu como posso seguramente verificar se ele é a senha correta que corresponda ao nome de usuário?

Eu tenho feito PHP para talvez um ano agora, eu só não aprenderam esta parte ainda assim seria bom saber.

Foi útil?

Solução

Que tipo de criptografia é usada com html ??

Nenhum. A entrada é apenas mascarados para proteger contra "olhando para o monitor" ataques.

Se você quer segurança, transmitir seus dados através de HTTPS (HTTP com SSL).

Como faço para manter o usuário logado ao longo da sua visita ao meu site?

A maioria das pessoas usam cookies.

Eu como faço com segurança verificar se ele é a senha correta que corresponda ao nome de usuário ??

segurança?

Não use um servidor compartilhado. Siga os passos normais para manter os dados no servidor seguro. Armazenar senhas como hashes, não como texto simples.

Check?

Converter a senha enviada para o hash correspondente, e depois comparar como normal. Supondo que você armazenar os dados em um banco de dados, basta selecionar dos usuários ONDE Usuário =? E senha =? e contar o número de linhas que você recebe de volta.

Outras dicas

Vou abordar a parte de proteção de senha da sua pergunta.

Não há construído em criptografia com o tipo de entrada de senha. O navegador irá apresentá-lo como texto simples como tudo o resto. Há duas maneiras de proteger a senha.

O primeiro é a criação de um desafio / resposta do sistema mas isso exigirá Javascript ao trabalho. Basicamente você tomar a senha do usuário, aplicar uma função hash se essa é a forma como ele é armazenado no servidor, então você toma um desafio servidor token e sal o valor senha para um novo hash. O servidor irá levá-lo do valor da senha e aplicar o desafio também. Se eles coincidir com a senha está correta e não há nenhuma maneira para que todos possam saber o que a senha real era. Isso requer javascript porque o hash deve ser produzido no lado do cliente, se essa abordagem é para ser eficaz.

Outra opção, mais simples, é exigir HTTPS para o log em parte do site.

Como David disse que não há criptografia de senhas por padrão, use https para manter criptografar.

Para manter o usuário logado, na página de login, verificar a sua senha contra o que é armazenado no banco de dados. Você deve botar suas senhas, e armazenar o hash de senha no banco de dados (ver cripta ). em seguida, quando o usuário fizer login, hash de senha do usuário e compará-lo com o hash de senha no banco de dados. Quando eles correspondem, login, caso contrário o login falhar. Se o seu db nunca fica comprometida, pelo menos eles não têm as senhas.

Para manter o usuário logado, depois de ter verificado a senha, definir uma variável na sessão, ou seja

 $_SESSION[loggedin] = true. 

Em cada pedido, verifique este variável de sessão, e se é verdade, permitir o acesso à página, se for falsa, redirecionar o usuário para a página de login com um

 header("Location: /login.php");

entradas de senha não são criptografados. Se você não deseja armazenar senhas em texto puro (como retornado pelo formulário) Você deve executar uma das várias funções fornecidas por ambos php e mysql. confira php md5 , sha1 , ou mysql de criptografar para armazenar senhas.

Então, para verificar se eles digitou a senha correta para entrar, você pode usar qualquer método de criptografia na sua entrada, recuperar o hash de senha do banco de dados e compará-los. (Além disso, olhar para salga senhas )

Para ter uma sessão de login persistente, você pode usar variável $ _SESSION do php. ou setcookie ()

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top