Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos.
Estou iniciando meus estudos na linguagem PHP e minha dúvida é em relação a como as informações são tratadas no que diz respeito a segurança de aplicações PHP.
Por exemplo:
Um site de compras, a pessoa tem que logar no site. Nesse processo algumas validações como a verificação do usuário e senha dessa pessoa são verificados. Fora isso, o que mais é feito?
Enquanto a pessoa estiver navegando pelo site, como é feita a verificação para saber se a pessoa ainda se encontra ativa ou não?
Essas são algumas dúvidas que tenho em relação a aplicações desse tipo.
Até a próxima. :thumbsup:
Isso é o básico.
O segredo esta no tratamento de toda variável recebida, assim você vai definir uma regra e um fluxo e sempre tem que ser aquele no caso verificar na DB e criar a sessão, isso tem que acontecer exatamente desse jeito e por isso verificamos se o que foi enviado esta vazio se é um tipo de dado que queremos como só números ou só letras ou letras+@+letras+.+letras
Existem jeitos de se programar e o mais famoso é o procedural que você vai escrevendo conforme a necessidade, esse método as vezes deixa falha no sistema.
Já quando trabalhamos com alguma orientação (Orientação a Objeto é a mais conhecida) ela nos permite um tratamento melhor dos dados com os modificadores de visibilidade, encapsulamento etc.. e isso torna nosso sistema mais seguro.
o PHP é seguro por que fica do lado do servidor então é muito dificil ter acesso, os sites que são burlaveis acontece por conta do programador que fez um mal uso da linguagem.
Creio que a questão de segurança em si deve partir muito do programador. Uma boa ideia é antes de você criar algo, crie testes primeiros (TDD), com isso você vai arrancando as possiblidades das famosas "brechas", uma boa prática também é você criptografar as senhas dos usuários. Agora ao sistema em si...
O básico é tratar SQL Injection, validação dos formulários do site (validar tanto no lado servidor quando no usuário), verificar os parametros que vem da URL.
Depedendo do sistema é interessante você utilizar um Framework, claro nada contra você usar um código 100% seu, mas o Framework com certeza vai te dar todo o suporte necessário para uma modelagem e sistema mais amplo. Para banco de dados utilize "boas práticas" como PDO, caso queria um um pouco mais longe eu indico o ORM Doctrine.
O caminho das pedras são esses acredito... E claro, utilizar a versão atual e estável do PHP.
Olá amigo.
Muito boa a explicação de vocês, acredito que com isso mato boa parte das dúvidas referente a esse tipo de tratamento em aplicações PHP.
Até a próxima. :thumbsup:
Vamos lá, quando o cara vai logar, primeira coisa que você precisa fazer é tratar SQL Injection (leia aqui http://imasters.com.br/artigo/5179/php/sql-injection-no-php-o-que-e-e-como-se-proteger).
Depois disso recomento você primeiro fazer a select buscando o usuário apenas pelo usuário digitado, e não pelo usuário + senha. Ai quando retornar a pesquisa, você compara a senha do banco com a que ele digitou. Dessa forma fica mais difícil de o cara burlar sua busca e forçar algum SQL injection que você não validou.
Depois disso você grava na sessão que o usuário está logado, assim enquanto ele está navegando pelo site, você apenas verifica se a sessão de logado está lá. Lembrando que deve incluir um botão de sair, para você mantar a sessão quando o usuário precisar sair.