Diogo Freitas Postado Junho 24, 2008 Denunciar Share Postado Junho 24, 2008 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.lolgostaria de vos pedir se poderiam analisar o sistema e me dar uma opinião acerca.muito obrigadologin 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Junho 26, 2008 Autor Denunciar Share Postado Junho 26, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Junho 26, 2008 Autor Denunciar Share Postado Junho 26, 2008 pow joe, para além de ser bom nisto voce é alegre..gostei de ver...muito obrigado....e o pormenor do abraço...caraca...alegria..lol Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Junho 27, 2008 Autor Denunciar Share Postado Junho 27, 2008 bons dias,me dá este erro aqui...não sei o que é pois nunca trabalhei com classes...se puder me ajudarParse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/delipoli/public_html/php/admin/connect_db.php on line 4 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Julho 2, 2008 Autor Denunciar Share Postado Julho 2, 2008 joedesign....podes me ajudar?sinceramente não sei como resolver esse erro..na verdade nem sei do que se trata.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Julho 3, 2008 Autor Denunciar Share Postado Julho 3, 2008 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; } } } ?><?phpsession_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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Julho 6, 2008 Autor Denunciar Share Postado Julho 6, 2008 mas me diz uma coisa....eu nunca baixei php..sempre trabalhei directo com dreamweaver...como faço isso?o que interessa não é a versão do php no server?abração Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Julho 9, 2008 Autor Denunciar Share Postado Julho 9, 2008 não joe, isso eu sei, aliás, o php triade está instalado no meu pc...a minha dúvida é seguinte. eu tou testando direto na rede, faço up para a pasta mas não dá..isso significa que o server não tem php5?abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diogo Freitas Postado Julho 11, 2008 Autor Denunciar Share Postado Julho 11, 2008 pois, e isso então.o sevre não tem php 5 :(abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Diogo Freitas
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:
valida_session do administrador: login dos users: valida_session1 dos users: valida_session2 dos users:muitissiomo obrigado
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
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.