Guest NoOne Posted October 25, 2005 at 12:56 PM Report #5773 Posted October 25, 2005 at 12:56 PM Eu preciso de um sistema de login seguro, ja procurei em alguns sitios ms n percebo mto bem dakilo se alguem puder ajudar 😄
MauDaFita Posted October 31, 2005 at 08:12 PM Report #6096 Posted October 31, 2005 at 08:12 PM Boas. Eu posso-te ajudar, mas preciso de saber como pretendes guardar os Usernames e as Pass's dos utilizadores, se numa BD MySQL, se em XML, etc... Tenho alguns sistemas de Login em PHP, talvez um se encaixe no que pretendes. ;)
ouvi_dizer Posted November 1, 2005 at 05:39 PM Report #6174 Posted November 1, 2005 at 05:39 PM O Apache disponibiliza um sistema de login seguro. Um dos senãos é que o ficheiro de users mantido manualmente.
Guest NoOne Posted November 1, 2005 at 10:19 PM Report #6188 Posted November 1, 2005 at 10:19 PM em MySQL era boa cena 😛
AriOps Posted November 2, 2005 at 07:03 PM Report #6216 Posted November 2, 2005 at 07:03 PM eu desenvolvi à tempos um que não só pedia o user e a pass, pedia também um código binário de 10 dÃgitos para autenticação do utilizador. Em PHP/MySQL Daniel Correia
David Pintassilgo Posted November 2, 2005 at 07:56 PM Report #6227 Posted November 2, 2005 at 07:56 PM eu desenvolvi à tempos um que não só pedia o user e a pass, pedia também um código binário de 10 dÃgitos para autenticação do utilizador. Em PHP/MySQL Tens isso ai pra desponibilizar á malta? Eu por acaso ando á procura de uma cena em php simples. Só para introduzir um login/password e depois abrir uma pagina com link's. cool stuffs to check. http://blog.zxcoders.com//
pebat Posted November 2, 2005 at 10:51 PM Report #6241 Posted November 2, 2005 at 10:51 PM amanha ja meto aki um script ... de login .... simples... sem nada de mais
Warrior Posted November 2, 2005 at 11:14 PM Report #6242 Posted November 2, 2005 at 11:14 PM Eu à uns tempos (quando começei a aprender PHP, a primeira coisa que alguem faz para testar ligação com bases de dados (PHP sem bases de dados nao é PHP..) é um sistema de logins..) fiz algo que, apesar de não ser fiável, estava a funcionar. http://darkwarrior.no.sapo.pt/Login.rar Não foi o que pediram no topic por certo, uma vez que isto não é uma forma segura, mas talvez alguem ache util.
MauDaFita Posted November 3, 2005 at 12:39 AM Report #6243 Posted November 3, 2005 at 12:39 AM Podes usar algo deste genero : <?php /* ========================================== ================ Variaveis ================= ========================================== */ $redirURL = "pagina.php"; define('DB_NAME', 'nome_da_BD'); define('DB_HOST', 'servidor_da_BD'); define('DB_USER', 'user_da_BD'); define('DB_PASS', 'pass_da_BD'); /* ========================================== */ session_start(); $form_username = $_POST['username']; $form_password = $_POST['password']; $_SESSION['strBackToPage'] = "false"; $strErrorMsg = " "; if ($_REQUEST['action'] == "Login"){ if (empty($form_username) || empty($form_password)){ $strErrorMsg = "Dados incompletos."; } else if (ValidateLogin($form_username,$form_password)){ $_SESSION['username'] = "$form_username"; $_SESSION['useractive'] = "yes"; $_SESSION['strBackToPage'] = "true"; header("Location: $redirURL"); } else{ $strErrorMsg = "Dados incorrectos."; } } if ($_SESSION['strBackToPage'] == "false") { ?> <html> <head> <title>You need to Login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> <!-- table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #000000; } --> </style> </head> <body bgcolor="#FFFFFF"> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCC99" align="center"> <tr> <td bgcolor="#CC9900"><br /> <strong><?php echo $strErrorMsg; ?></strong></td> </tr> <tr> <td> <form method="post" action="<?php echo $strURL; ?>"> <table width="100%" border="0"> <tr> <td><strong>Username</strong>:</td> <td><input name="username" size="20"></td> </tr> <tr> <td><strong>Password</strong>:</td> <td><input type="password" name="password" size="20" /></td> </tr> </table> <input type="submit" name="action" value="Login" /> </form> </td> </tr> </table> </body> </html> <?php } /* ============================================================== */ /* ======= FUNCTION: VALIDATE USER & PASS BOOL VALUE ============ */ /* ============================================================== */ function ValidateLogin($validUser,$validPass) { openConn(); global $dbServerConn; $login_value = false; $strSQL = "SELECT * FROM tabela WHERE login = '$validUser' AND password = '$validPass' "; $strSQL_result = mysql_query($strSQL,$dbServerConn) or die(mysql_error()); $rows = mysql_num_rows($strSQL_result); //echo $strSQL_result; if ($rows == 1) { $login_value = true; } return $login_value; } /* ======= FUNCTION: VALIDATE USER & PASS BOOL VALUE ============ */ /* =========================== END ============================== */ function openConn(){ global $dbServerConn; $dbServerConn = mysql_connect(DB_HOST,DB_USER,DB_PASS) or mysql_error($dbServerConn); $dbSel = mysql_select_db(DB_NAME, $dbServerConn) or mysql_error($dbSel); } ?> Alteras as variaveis da ligação à BD no inicio, alteras o URL de redireccionamento e os dados relativos à tabela MySQL na função "ValidateLogin".
MauDaFita Posted November 3, 2005 at 12:43 AM Report #6244 Posted November 3, 2005 at 12:43 AM Ah... esqueci-me, depois usas no cabeçalho de todas as páginas isto : session_start(); if ( @$_SESSION['useractive'] != "yes" ) { header("Location: index.php" ); exit(); } para ver se o utilizador está activo, senão redirecciona para a página de Login...
pebat Posted November 3, 2005 at 01:21 AM Report #6245 Posted November 3, 2005 at 01:21 AM esse ja e mto complicado 😛 a maneiras mais facil de fazer nao tem tanta segurança mas e mais simples ...
ouvi_dizer Posted November 3, 2005 at 09:46 AM Report #6248 Posted November 3, 2005 at 09:46 AM O que o Mau da Fita colocou não é só o acto de login, mas também uma garantia que quem acede às páginas em que o codigo que valida se o user está activo está efectivamente logado. Isto é particularmente util em 2 tipos de situação: a) alguem acede directamente a um link e/ou envia dados por post directamente para uma página onde não devia b) há corrupção dos dados contidos na session Algo que por vezes também se faz para evitar algum tipo de "roubo de sessão" é guardar o ip e o session id na primeira página e validar se o ip e session id são iguais em todas as páginas. Mas em questões de login, quanto mais estranho melhor.
David Pintassilgo Posted November 3, 2005 at 07:38 PM Report #6264 Posted November 3, 2005 at 07:38 PM Eu à uns tempos (quando começei a aprender PHP, a primeira coisa que alguem faz para testar ligação com bases de dados (PHP sem bases de dados nao é PHP..) é um sistema de logins..) fiz algo que, apesar de não ser fiável, estava a funcionar.http://darkwarrior.no.sapo.pt/Login.rar Não foi o que pediram no topic por certo, uma vez que isto não é uma forma segura, mas talvez alguem ache util. Boas, já testei isso mas dá-me um erro: Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'DB_USERNAME'@'localhost' (using password: YES) in c:\wamp\www\login\login.php on line 12Unable to select database Que me falta, qual o problema? (eu não precebo mesmo NADA disto, á que ter em conta este promenor! :oops: ) cool stuffs to check. http://blog.zxcoders.com//
Warrior Posted November 3, 2005 at 08:26 PM Report #6268 Posted November 3, 2005 at 08:26 PM Isso é suposto funcionar como uma base de dados MySQL tambem instalada. Tens que alterar no codigo de login o DB_USERNAME para o username da base de dados, e o DB_PASSWORD para aceder à passsword, depois tens que criar as tabelas com a mesma estrutura.. Eu agora não estou em casa, mas quando chegar dou-te a estrutura da tabela (se bem me lembro era simples, so um campo de username e um de password mesmo) Uma pergunta: existe alguma forma de se ver quais as variaveis actuais do $_SESSION, e de alterá-las de alguma forma client-side? Porque se sim, todos os sistemas de login ja postados são facilmente hackados, basta ver as variaveis de $_SESSION e defini-las para o que queremos (o login do user com o qual queremos entrar) A única forma de proteger contra isso, pelo menos que me lembre, seria guardar o login e a password em $_SESSION, e fazer-se a verificação com a base de dados no topo de cada página, o que tornaria o site ultra lento.. É possÃvel ou não ver-se as variáveis de sessão?
ouvi_dizer Posted November 3, 2005 at 08:54 PM Report #6270 Posted November 3, 2005 at 08:54 PM Session é server side.
David Pintassilgo Posted November 3, 2005 at 09:24 PM Report #6276 Posted November 3, 2005 at 09:24 PM Warrior, fico então á espera que me possas dar aqui uma maozinha! 😛 Já agora, isto tá a funcionar aqui: http://dpintassilgo.no-ip.com/privado meti tudo tal e qual como vinha, ainda não mexi em nada. cool stuffs to check. http://blog.zxcoders.com//
Warrior Posted November 3, 2005 at 09:40 PM Report #6278 Posted November 3, 2005 at 09:40 PM Session é server side. Tanta preocupação para nada. Ainda bem então.
David Pintassilgo Posted November 3, 2005 at 10:01 PM Report #6280 Posted November 3, 2005 at 10:01 PM Agradecimentos ao Warrior! 😛 sistema de login a funcionar a 100% 😛 cool stuffs to check. http://blog.zxcoders.com//
Warrior Posted November 3, 2005 at 10:14 PM Report #6283 Posted November 3, 2005 at 10:14 PM Dispoe sempre, e bemvindo ao PHP e às bases de dados 😛
Akira Posted November 9, 2005 at 05:46 PM Report #6511 Posted November 9, 2005 at 05:46 PM esse ja e mto complicado 😉 a maneiras mais facil de fazer nao tem tanta segurança mas e mais simples ... se queres comprometer a segurança das tuas aplicações é contigo. Eu para além de estes sistemas uso bem mais como auth keys em imagens. Não me passa pela cabeça fazer store de passwords e afins em ficheiros para download do people ou coisa do tipo. Chama-me paranoico se quiseres, mas no dia em que tiveres um site defaced por causa de usares autenticações "mais simples" depois percebes.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now