Ir para conteúdo
Fórum Script Brasil
  • 0

testar segurança


Diogo Freitas

Pergunta

boas tardes,

recentemente me recomendaram um trabalho o qual consistia num sistema de login em php com segurança.

bom, eu criei o sistema e penso que tem segurança suficiente e que não será fácil de qualquer um penetrar, a não ser os barras no assunto.lol

gostaria de vos pedir se poderiam analisar o sistema e me dar uma opinião acerca.

muito obrigado

login do admiistrador:

<?php
$cn = mysql_connect("localhost", "delipoli_users", "users");
mysql_select_db("delipoli_users");

$login = $_POST['login'];
$senha = $_POST['senha'];
$login_escape = addslashes($login);
$senha_escape = addslashes($senha);

$resultado = mysql_query("select * from admin where login = '{$login_escape}' AND senha = '{$senha_escape}'");

$linhas = mysql_num_rows($resultado);

$id = mysql_query("select id from admin where login = '{$login_escape}'");
$id_fetch = mysql_fetch_assoc($id);

if($linhas == 0)
{
echo "<center>Usuário não encontrado ou senha errada</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
}else{
    session_start();
    $_SESSION["login_usuario"] = $login_escape;
    $_SESSION["senha_usuario"] = $senha_escape;
    $_SESSION["id_usuario"]    = $id_fetch['id'];

    header("Location: admin.php");
    
}
mysql_close($cn);

?>
valida_session do administrador:
<?php
session_start();

if($_SESSION['id_usuario'] != "1528"){
echo '<center>Você não tem permissão para acessar a esta página</center>';
echo "<center><img src='../../gif/proibido.png' /></center><p>";
echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
exit;
}

if(isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"]) AND isset($_SESSION["id_usuario"])) {
    $login_usuario = $_SESSION["login_usuario"];
    $senha_usuario = $_SESSION["senha_usuario"];
    $id_usuario    = $_SESSION["id_usuario"];
}else{
echo "<center>Login não efectuado</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
exit();
}

if($_SESSION['login_usuario'] != "admin" AND $_SESSION['senha_usuario'] != "admin"){
echo '<center>Você não tem permissão para acessar a esta página</center>';
echo "<center><img src='../../gif/proibido.png' /></center><p>";
echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
exit;
}

if(!(empty($login_usuario) OR empty($senha_usuario)))
{
$cn = mysql_connect("localhost", "delipoli_users", "users");
mysql_select_db("delipoli_users");
$resultado = mysql_query("select * from admin where login = '$login_usuario'");

if(mysql_num_rows($resultado) == 1)
{
    if($senha_usuario != mysql_result($resultado, 0, "senha"))
    {
        unset ($_SESSION["login_usuario"]);
        unset ($_SESSION["senha_usuario"]);
        unset ($_SESSION["id_usuario"]);
        echo "<center>Login não efectuado</center>";
        echo "<center><img src='../../gif/perigo.png' /></center><p>";
        echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
        exit();
    }
}else{
    unset ($_SESSION["login_usuario"]);
    unset ($_SESSION["senha_usuario"]);
    unset ($_SESSION["id_usuario"]);
    echo "<center>Login não efectuado</center>";
    echo "<center><img src='../../gif/perigo.png' /></center><p>";
    echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
    exit();
}
}
else{
echo "<center>Login não efectuado</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../admin.php'>voltar a tentar</a></center>";
exit();
}
mysql_close($cn);
?>
login dos users:
<?php
$cn = mysql_connect("localhost", "delipoli_users", "users");
mysql_select_db("delipoli_users");

$login = $_POST['login'];
$senha = $_POST['senha'];
$login_escape = addslashes($login);
$senha_escape = addslashes($senha);

$resultado = mysql_query("select * from users where login = '{$login_escape}' AND senha = '{$senha_escape}'");

$linhas = mysql_num_rows($resultado);

$id = mysql_query("select id from users where login = '{$login_escape}'");
$id_fetch = mysql_fetch_assoc($id);

if($linhas == 0)
{
echo "<center>Usuário não encontrado ou senha errada</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
}else{
    session_start();
    $_SESSION["login_usuario"] = $login_escape;
    $_SESSION["senha_usuario"] = $senha_escape;
    $_SESSION["id_usuario"]    = $id_fetch['id'];

    header("Location: empresa_user.php?id=".$id_fetch['id']."");
    
}
mysql_close($cn);

?>
valida_session1 dos users:
<?php
session_start();

if($_SESSION['id_usuario'] != $id){
echo '<center>Você não tem permissão para acessar a esta página</center>';
echo "<center><img src='../../gif/proibido.png' /></center><p>";
echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
exit;
}

if(isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"]) AND isset($_SESSION["id_usuario"])) {
    $login_usuario = $_SESSION["login_usuario"];
    $senha_usuario = $_SESSION["senha_usuario"];
    $id_usuario    = $_SESSION["id_usuario"];
}else{
echo "<center>Login não efectuado</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
exit();
}

if(!(empty($login_usuario) OR empty($senha_usuario)))
{
$cn = mysql_connect("localhost", "delipoli_users", "users");
mysql_select_db("delipoli_users");
$resultado = mysql_query("select * from users where login = '$login_usuario'");

if(mysql_num_rows($resultado) == 1)
{
    if($senha_usuario != mysql_result($resultado, 0, "senha"))
    {
        unset ($_SESSION["login_usuario"]);
        unset ($_SESSION["senha_usuario"]);
        unset ($_SESSION["id_usuario"]);
        echo "<center>Login não efectuado</center>";
        echo "<center><img src='../../gif/perigo.png' /></center><p>";
        echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
        exit();
    }
}else{
    unset ($_SESSION["login_usuario"]);
    unset ($_SESSION["senha_usuario"]);
    unset ($_SESSION["id_usuario"]);
    echo "<center>Login não efectuado</center>";
    echo "<center><img src='../../gif/perigo.png' /></center><p>";
    echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
    exit();
}
}
else{
echo "<center>Login não efectuado</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
exit();
}
mysql_close($cn);
?>
valida_session2 dos users:
<?php
session_start();

if(!(empty($login_usuario) OR empty($senha_usuario)))
{
$cn = mysql_connect("localhost", "delipoli_users", "users");
mysql_select_db("delipoli_users");
$resultado = mysql_query("select * from users where login = '$login_usuario'");

if(mysql_num_rows($resultado) == 1)
{
    if($senha_usuario != mysql_result($resultado, 0, "senha"))
    {
        unset ($_SESSION["login_usuario"]);
        unset ($_SESSION["senha_usuario"]);
        unset ($_SESSION["id_usuario"]);
        echo "<center>Login não efectuado</center>";
        echo "<center><img src='../../gif/perigo.png' /></center><p>";
        echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
        exit();
    }
}else{
    unset ($_SESSION["login_usuario"]);
    unset ($_SESSION["senha_usuario"]);
    unset ($_SESSION["id_usuario"]);
    echo "<center>Login não efectuado</center>";
    echo "<center><img src='../../gif/perigo.png' /></center><p>";
    echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
    exit();
}
}
else{
echo "<center>Login não efectuado</center>";
echo "<center><img src='../../gif/perigo.png' /></center><p>";
echo "<center><a href='../areareservada.php'>voltar a tentar</a></center>";
exit();
}
mysql_close($cn);
?>

muitissiomo obrigado

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

pow muitissimo obrigado....realmente não conhecia este tipo de conecção com o banco de dados.muitissimo obrigado mesmo...

só me diz uma coisa, onde é que coloco o user e tudo mais referente à db????não vi nada no código...

e já agora, falou que os users ao conectar terão "que usar alguma função dentro da classe, mas se tentar se conectar direto para fazer algo, retorna erro"...terei de fazer alguma alteração nesse sentido?

muitissimo obrigado mais uma vez...abraço

Link para o comentário
Compartilhar em outros sites

  • 0

olha ai...

connect_db

<?php
class banco_de_dados{

    private $conn, $ret, $user, $key_acces, $dsn, $bank;

    
    public function __construct ($user, $key, $dsn, $bank){
        $this -> user      = $user;
        $this -> key_acces = $key;
        $this -> dsn       = $dsn;
        $this -> bank      = $bank;
        $this -> conn      = false;
    
        $this -> ret       = null;
        }


    private function connect(){
        
        $a = mysql_connect(
                    $this -> dsn,
                    $this -> user,
                    $this -> key_acces
                    );
                    
        if (!$a) {
            $this -> ret  = mysql_error;
            return false;
            }

        $this -> conn = $a;
            
        $b = mysql_select_db($this -> bank, 
                             $this -> conn);
    
            if (!$b){
            $this->ret  = mysql_error;  
            return false;
            }
            
         $this->ret  = 'Base de dados conectada!';
         return true;         
     }
        
    
    public function getreturn (){
        return $this -> ret;
        }
        
    public function send_query($q, $i){
        
        $a = $this -> connect();

        if ($a){
            $t = mysql_query($q);
            
            if (!$a) {
            $this -> ret = mysql_error();
            return false;
            }
                
        switch ($i){
               case 0:
                return mysql_fetch_object($t);
                break;
               case 1:
                   return mysql_fetch_array($t);        
                break;
               case 2:
                return $t;        
                break;
               case 3:
                return mysql_affected_rows();        
                break;
            case 4:
                return mysql_insert_id();
                break;
            case 5:
                return mysql_num_rows($t);
                break;
            case 6:
                $mysql['num_rows']    = mysql_num_rows($t);
                $mysql['fetch_array'] = mysql_fetch_array($t);
                return $mysql;
                break;
            }
        }
    }
    
}

class mysql_login{

    public function conect_db($n){
    
        switch($n){
        
            case 1:
                $conn = new banco_de_dados('delipoli_users', 
                                               'users', 
                                               'localhost', 
                                           'delipoli_users');
                return $conn;
                break;
        
        }
    
    }

}
?>

<?php

session_start();

if($_SESSION['id_admin'] != "1528"){

echo '<center>Você não tem permissão para acessar a esta página</center>';

echo "<center><img src=../../gif/proibido.png' /></center><p>";

echo "<center><a href='../admin.php'>voltar a tentar</a></center>";

exit;

}

if(isset($_SESSION["login_admin]) AND isset($_SESSION["senha_admin"]) AND isset($_SESSION["id_admin"])) {

$login_usuario = $_SESSION["login_admin"];

$senha_usuario = $_SESSION["senha_admin"];

$id_usuario = $_SESSION["id_admin"];

}else{

echo "<center>Login não efectuado</center>";

echo "<center><img src=../../gif/perigo.png' /></center><p>";

echo "<center><a href='../admin.php'>voltar a tentar</a></center>";

exit();

}

if($_SESSION['login_admin] != "admin" AND $_SESSION['senha_admin'] != "admin"){

echo '<center>Você não tem permissão para acessar a esta página</center>';

echo "<center><img src=../../gif/proibido.png' /></center><p>";

echo "<center><a href='../admin.php'>voltar a tentar</a></center>";

exit;

}

if(!(empty($login_usuario) OR empty($senha_usuario)))

{

require_once ("connect_db.php");

$a = new mysql_login;

$bd = $a -> conect_db(1);

$sql = "SELECT * FROM admin WHERE login = '$login_usuario'";

$query = $bd -> send_query($sql,6);

if($query['num_rows] == 1)

{

if($senha_usuario != mysql_result($query, 0, "senha"))

{

unset ($_SESSION["login_admin"]);

unset ($_SESSION["senha_admin"]);

unset ($_SESSION["id_admin"]);

echo "<center>Login não efectuado</center>";

echo "<center><img src=../../gif/perigo.png' /></center><p>";

echo "<center><a href='../admin.php'>voltar a tentar</a></center>";

exit();

}

}else{

unset ($_SESSION["login_admin]);

unset ($_SESSION["senha_admin"]);

unset ($_SESSION["id_admin"]);

echo "<center>Login não efectuado</center>";

echo "<center><img src='../../gif/perigo.png' /></center><p>";

echo "<center><a href='../admin.php'>voltar a tentar</a></center>";

exit();

}

}

else{

echo "<center>Login não efectuado</center>";

echo "<center><img src='../../gif/perigo.png' /></center><p>";

echo "<center><a href='../admin.php'>voltar a tentar</a></center>";

exit();

}

?>

muito obrigado...abração

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...