Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria da avaliação de segurança nesse sistema.
<?php
require('inc/config.php');
session_start();
if(isset($_SESSION["status"]) == true){
header("location:home");
}
// Essa é a função de segurança que trata o login que não deve conter caracteres indevidos e alem disso faço uma quebra de possíveis códigos maliciosos que possam entrar por ele
function av1login($varl){
$varl = strtr($varl,"áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ´`[{^~]}<,>.:;?/|\!@#$%¨&*()_-+=' ","aaaaeeiooouucaaaaeeiooouucxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
$varl = strip_tags($varl);
$varl = trim($varl);
$varl = addslashes($varl);
return $varl;
}
// Essa é a função de segurança que trata a senha que não deve conter caracteres indevidos e alem disso faço uma bela mistura de criptografias que com certeza não poderão ser retornadas por qualquer consulta :D
function av1pass($varp){
$varp = ~~~$varp;
$varp = hash("sha512",$varp);
$varp = md5($varp);
$varp = strtr($varp,"áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ´`[{^~]}<,>.:;?/|\!@#$%¨&*()_-+=' ","aaaaeeiooouucaaaaeeiooouucxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
return $varp;
}
$login = av1login($_POST['login']);
$pass = av1pass($_POST['pass']);
// Aqui trato o login e a senha separadamente quando vou consultar a tabela, ouvi falar em algum canto que essa forma é melhor do que tratar com AND
$sqllogin = "SELECT * FROM ".$prefix."login WHERE userlogin='".$login."'";
$sqlpass = "SELECT * FROM ".$prefix."login WHERE userpass='".$pass."'";
$resultlogin = mysql_query($sqllogin) or die (mysql_error());
$resultpass = mysql_query($sqlpass) or die (mysql_error());
$numlogin = mysql_num_rows($resultlogin);
$numpass = mysql_num_rows($resultpass);
// Quando consulto se existe ou não esse login e senha não retorno para a página o resultado e comparo com o digitado do usuário, em vez disso eu só conto se existe no banco o valor digitado ou seja a unica coisa que pego do banco é um true ou false e depois caso os dois passem na verificação do true/false inicio a sessão com o status = true e caso contrário "Acesso Negado" :)
if($numlogin == true && $numpass == true){
$_SESSION['status'] = true;
echo '<script>location.href=\'home\';</script>';
}else{
echo 'Acesso Negado';
}
?>
Então gostaria de dicas para melhorar isso.
Carregando comentários...