Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

_M!K0L_

Sistema de Login e Senha c/ Session + MD5

Recommended Posts

Boa Tarde Senhores !!!

 

Muito bom esse forum ! Sou novo na arte de programação, faço o curso de Sistemas de Informação na Unip Campinas.

 

Consegui fazer funcionar o cadastro a senha o DB.

 

So falta uma coisa importante, quando eu requisitar nova senha, como fico sabendo da mesma ???

 

espero que me ajudem abraço !

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Cara eu só to com um problema! Eu coloco o:

<?

include("restringir.php");

?>

 

nas paginas que eu quero proteger só que quando eu acesso a pagina ela é acessada normalmente sem pedir senha . O que pode estar acontecendo? eu fiz um teste colocando o código de proteção na pagina info.php

<?

include("restringir.php");

?>

<?

phpinfo();

?>

E nada. Eu estou fazendo certo e como resolver esse problema?"

 

 

Tente usar

 

<?php

include 'restringir.php';

?>

 

sem os ()...

 

abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

_M!K0L_, apenas fazendo referencia ao título de tópico. Não existe sistema "Totalmente Seguro".

 

 

- Função Anti-Injection: você pode utilizar o seguinte script mais "seguro" enxuto e causa o mesmo efeito (e no seu existem métodos que não são mais utilizados ;D):

 

 

SQL.php

function anti_injection($sql) {
	$sql = get_magic_quotes_gpc() == 0 ? addslashes($sql) : $sql;
	$sql = trim($sql);
	$sql = strip_tags($sql);
	$sql = mysql_escape_string($sql);
	return preg_replace("@(--|\#|\*|;|=)@s", '', $sql);
}

 

 

- Utilize redirecionamento do PHP sem necessidade de meta content:

 

cad_done.php

<?
header("Location: $local");
}
?>

Existem inumeras melhorias que você poderá fazer, espero que minhas dicas te ajudem ;D

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

_M!K0L_, apenas fazendo referencia ao título de tópico. Não existe sistema "Totalmente Seguro".

 

 

- Função Anti-Injection: você pode utilizar o seguinte script mais "seguro" enxuto e causa o mesmo efeito (e no seu existem métodos que não são mais utilizados ;D):

 

 

SQL.php

function anti_injection($sql) {
	$sql = get_magic_quotes_gpc() == 0 ? addslashes($sql) : $sql;
	$sql = trim($sql);
	$sql = strip_tags($sql);
	$sql = mysql_escape_string($sql);
	return preg_replace("@(--|\#|\*|;|=)@s", '', $sql);
}

 

 

- Utilize redirecionamento do PHP sem necessidade de meta content:

 

cad_done.php

<?
header("Location: $local");
}
?>

Existem inumeras melhorias que você poderá fazer, espero que minhas dicas te ajudem ;D

[]'s

Como já disse anteriormente 100% é modo de dizer, todo mundo sabe que nada é 100% =P..

eu utilizei de redirecionamento simples HTML porque me diz quem sabe PHP que não sabe HTML ? -.- acho que não existe.. (eu acho.)

bele vlw pela dica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados colegas,

Sou iniciante em PHP. Li o artigo e acompanhei as discussões.

No site que estou construindo está previsto o login para uma área restrita, portatno o artigo veio a calhar.

Consigo ler e interpretar bem os códigos, mas não sei como integrá-los ao meu site.

Gostaria que um dos experts pudesse explicar com detalhes para um neófito como integrar os códigos deste artigo ao HTML de um site.

Ficarei muito grato e tenho certeza que muitos colegas que se inciam no PHP agradecerão.

CID PEREIRA

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom cara, isso é um trabalho que você tem que fazer o que eu posso te ajudar é te dando ***dicas***

 

bom, copie o código salve com o nome original (mude só o do index.php para qualquer outro nome, ex: sis_login.php) como está no post, dai no SEU SITE ache um espaço para por o login e a senha e faz include assim

 

<?

include("sis_login.php");

?>

 

;D vlw..

 

aaa e não esquece de criar a tabela e as colunas no mysql :P/> pra da tudo certinhoo .. vlw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado MIKOL

Originalmente, pretendia fazer login usando arquivo texto e POST.

Seguindo sua orientação, COPIEI TODOS OS CÓDIGOS PARA UMA PASTA "SISLOGIN" alterei o nome do arquivo index como sugerido por voce, introduzi o include, o código ficou como segue:

 

<HTML >
<TITLE>
Área Restrita
</TITLE>
<script language="JavaScript">
<!--
function FP_swapImg() {//v1.0
 var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
 n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
 elm.$src=elm.src; elm.src=args[n+1]; } }
}

function FP_preloadImgs() {//v1.0
 var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}

function FP_getObjectByID(id,o) {//v1.0
 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
 return null;
}
// -->
</script>

<BODY onload="FP_preloadImgs(/*url*/'../../ATRM/HP/button22.jpg',/*url*/'../../ATRM/HP/button23.jpg',/*url*/'../../ATRM/HP/button34.jpg',/*url*/'../../ATRM/HP/button35.jpg',/*url*/'../../ATRM/HP/button38.jpg',/*url*/'../../ATRM/HP/button39.jpg',/*url*/'../../ATRM/HP/button47.jpg',/*url*/'../../ATRM/HP/button48.jpg',/*url*/'../../ATRM/HP/button4D.jpg',/*url*/'../../ATRM/HP/button4E.jpg',/*url*/'../../ATRM/HP/button50.jpg',/*url*/'../../ATRM/HP/button51.jpg',/*url*/'../../ATRM/HP/button53.jpg',/*url*/'../../ATRM/HP/button54.jpg',/*url*/'../../ATRM/HP/button56.jpg',/*url*/'../../ATRM/HP/button57.jpg',/*url*/'../../ATRM/HP/button59.jpg',/*url*/'../../ATRM/HP/button5A.jpg',/*url*/'../../ATRM/HP/button5C.jpg',/*url*/'../../ATRM/HP/button5D.jpg',/*url*/'../../ATRM/HP/buttonCN19652.jpg',/*url*/'../../ATRM/HP/buttonCN19653.jpg',/*url*/'button9.jpg',/*url*/'buttonA.jpg',/*url*/'button4A.jpg',/*url*/'button4B.jpg')">
<script type="text/javascript"> 
<!-- 
spe=400; 
na=document.all.tags("blink"); 
swi=1; 
bringBackBlinky(); 

function bringBackBlinky() { 

if (swi == 1) { 
sho="visible"; 
swi=0; 
} 
else { 
sho="hidden"; 
swi=1; 
} 

for(i=0;i<na.length;i++) { 
na[i].style.visibility=sho; 
} 

setTimeout("bringBackBlinky()", spe); 
} 
--> 
</script>

	<TR>
	   <CENTER>
	   
	   
	   </CENTER>
	</TR  >
	<TR>
	   <CENTER>
	   <H2>TESTE DO SISTEMA DE LOGIN</H2>
	   </CENTER>

	   <TR>
		   <CENTER><MARQUEE behavior="slide" direction="left" height="15" width="900" bgcolor=#CCFFFF loop="500"><FONT face="verdana" size="3" color="#333399">ATENÇÃO: Todos os dados constantes da página "Proposições" são fictícios, foram colocados apenas para demonstrar o funcionamento do site, são meramente ilustrativos. Observem que todos têm datas de 2008. À medida que o site for sendo desenvolvido, eles serão atualizados. Os dados da página "Contribuições" são todos reais.                                                                          
                                   </FONT></MARQUEE></CENTER>
	   </TR>
	   <TR><CENTER>
		  <P><font color="#FF0000"><b>ÁREA RESTRITA
		  </b></font>
		  <TABLE WIDTH="900" HEIGHT=55%>
		  <TR>
			  <TD VALIGN="TOP" WIDTH="320">
			  <p align="center">Mapa do site</p>
			  <table>
			  
				  
			  <tr>
				  <td align="right" valign="center">
					<font face="Tahoma" size="2">
					<a href="atrmarearestrita.html">Área Restrita</a></font></td>
				  <td align="left" valign="center"><font size="2">Página 
					acessível mediante login e senha, contendo relação de todos os componentes da ATRM, incluindo seus dados pessoais 
					e comprovações mensais.</font></td></tr>
				  
			  <tr>
				  <td align="right" valign="center">
					<font face="Tahoma" size="2">
					<a href="atrmcontribuicao.html">Contribuições</a></font></td>
				  <td align="left" valign="center"><font size="2">Relação de todas as contribuições realizadas pelos componentes da ATRM, com o resultado de sua apreciação.</font></td></tr>
				  
			  <tr>
				  <td align="right" valign="center">
					<font face="Tahoma" size="2">
					<a href="atrmfaleconosco.html">Fale Conosco</a></font></td>
				  <td align="left" valign="center"><font size="2">Formulário 
					para comunicar-se com a ATRM, podendo fazer críticas, enviar 
					sugestões,  contribuições e proposições.</font></td></tr>
				  
			  <tr>
				  <td align="right" valign="center">
					<font face="Tahoma" size="2">
					<a href="atrmproposicoes.html">Proposições</a></font></td>
				  <td align="left" valign="center"><font size="2">Relação de todas as proposições feitas, incluindo sua discussão e votação.</font></td></tr>
				  
				  
			  <tr>
				  <td align="right" valign="center">
					<font face="Tahoma" size="2">
					<a href="atrmcadastro.html">Cadastro</a></font></td>
				  <td align="left" valign="center"><font size="2">Formulário para apresentação de alteração dos dados pessoais.</font></td></tr>
				  
			  <tr>
				  <td align="right" valign="center">
					<font face="Tahoma" size="2">
					<a href="atrmnormas.html">Normas</a></font></td>
				  <td align="left" valign="center"><font size="2">Relação de todas as normas pertinentes à ATRM, incluindo o Estatuto.</font></td></tr>
				  
				  </table>   
			  </TD>
			  <TD VALIGN="TOP" WIDTH="530"  >
				 <p align="justify"><font size="3"><p></p>Prezado Internauta, 
					você está ingressando numa área restrita.</br>
					Para prosseguir é necessário fazer login.</br>

					<?
					include("C:\Cid\PHP\SISLOGIN\sis_login.php");
					?>

					
				 </p>
<!-- /*
				 <form method="POST" action="index.html">
	 <input type=hidden name="redirect" >

	<fieldset>
	
	<p align="center">
	</br>
	<label>Login: </label></font>
	<input type="text" name="login" size="40" /><font size="2"><br /></br>
	<font size="3">
	<label>Senha: </label></font>
	<input type="password" name="senha" size="40" /><font size="2">
	<font size="2">
	<p align="center"><input align="middle" type="submit" value="LOGIN"/></p>
	</font></font></font>
	</fieldset></font>
</font>
	
	</form>
*/ -->
			  </TD>
		  </TR>
		  </TABLE>
	   </CENTER></TR>
			  <TR>
		   <CENTER>
		   <HR ALIGN=CENTER WIDTH=700>
		   <FONT FACE="georgia" size="1.5" color="#cc3366">Desenvolvido por CID PEREIRA, Tel 21 96046650, E-mail: cidcostap@yahoo.com.br</FONT>
		   </CENTER>
	   </TR>

	</TR>
</BODY>
</HTML>
O include não funcionou. Você pode identificar o erro que devo ter cometido, pois já analisei e nãoconsigo encontrar erro. Será que não é alguma configuração?

Agradeço ajuda.

CID

Compartilhar este post


Link para o post
Compartilhar em outros sites

_M!KOL_

 

Utilizei esse seu sistema de login muito bom mais estou utilizando um painel de controle que to tentando fazer na sorte(pq n sei nada de PHP)

Ae no meu painel de controle tem lá Modificar Nick Modificar Senha Mudar outros dados cadastrais(Endereço,email)

Ae eu logo e vou para uma seção modificar senha por exemplo e ele entra diboua mais se eu for pra modificar o NICK na sessão modificar nick ele pede pra fazer o login mesmo sem eu ter feito o logout...

e a mesma coisa acontece quando eu vou pra modificar a senha entro na sessão que quando preencho o formulário ele pede pra relogar e n modifica!

 

Poderia me ajudar e se possivel me explicar exatamente como eu posso fazer esse meu painel com edição de senha, email, endereço, e nick?

Vlw ae!

 

Bom como n sei se existe punição pra duplo post to editano ese aki...xD

 

Cara to criando um novo sistema de login utilizando alguns scripts desse seu ae, de um mural pra mim poder colocar um painel de controle pra admiistrador, e para usuário com várias funções extras...bem massa eu terminando e fazendo os respectivos testes na minha paina q to criando irei postar o arquivo ZIP para download para quem quiser ae to avisando pq to fazendo algumas modificações como por exemplo:

permitir um usuário somente com cada login por exemplo somente 1 user com o login Rafael e nome de exibição Rafael e tals cada um terá o seu...

somente um administrador por pessoa igual se eu cadastrar o [ADM]Rafael com o meu nome Rafael C Brito eu n poderei cadastrar um segundo ADM para essa pessoa...

posso visualizar se existe um usuário cadastrado com um login e no painel do ADM posso procurar por um respectivo user...

tenho uma seção pra mostrar todos os ADMs cadastrados no site...

farei para aparecer todos os users cadastrados...

verufucador de disponibilidade de usuário sem a necessida de ter que preencher o formulário e dar Ok! pra verse tem ou n...

entre outras funções bem da hora...

Até mais e em breve o meu sist de login modificado e incrementado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mals ae galera pelo Duplo:

 

Algum Expert em PHP poderia me passar um anti sql_injection que rode no XP sem a necessidade do PHP5???

to precisando mto pq o meu sistema de login ta sem e é ruim dimais fica sem SQL-Injection...

vlw!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://br2.php.net/manual/pt_BR/function.addslashes.php

 

OBS: esse sistema de login não é "Totalmente seguro"

 

ele usa session_register() e essa função esta obsoleta e ela só funciona em ambientes que usam register_globals = on

por isso com register ligado o sistema fica mais inseguro ainda.

 

um login bem feito nao é um bicho de 7 cabeças, basta fazer um select e passar os dados por parametros evitando o sql injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizando Addslashes() é mais seguro que stripslashes()????

 

ah e alguem pode me ensinar a fazer para diferenciar no login e no cadastro as letrs maiusculas e minusculas e a senha sendo obrigado a ter letras e numeros???

 

vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adiciona barras invertidas a uma string

http://br2.php.net/Addslashes

 

Desfaz o efeito de addslashes()

http://br2.php.net/manual/pt_BR/function.stripslashes.php

 

o resto voce precisa usar expressão regulares

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw...

 

EDIT

 

Cara consegui usar no miarroba.com o anti_injection (lá aceita php5) mais eu cadastrei um user chamado DROP com senha DROP TABLE e ele aceitou o nome de usuário e senha mais apareceu isso aqui tbm antes deve ser do anti_injection:

(essa msg daqui pra frente que deu certo o login do cara)Bem vindo INSERT INTO adm DROP !

Clique AQUI e vá para o seu painel de controle!

 

ae como que faço para ele dar o erro e aparecer a mensagem do erro?

 

EDIT NOVAMENTE:

 

Aqui vai o meu sistema de login que foi baseado nesse login ae, em um mural de recados(daqui do fórum mesmo) e o resto foi por mim mesmo xD!)

 

Meu sistema de login disponibilizado para todos baixarem!!!somente 52 Kb xD leve não???o.O CLIQUE NESSA MENSAGEM AQUI MESMO

 

OBS:Coloquei créditos somente no arquivo:

leia-me.html pq nas outras páginas eu sei que o pessoal iriam tirar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

_M!KOL_

 

Implementei o seu sistema de login no sistema intranet que estou desenvolvendo, mais não consigo resolver um erro que está aparecendo referente ao SQL injection.

 

ERRO:

 

Fatal error: Cannot redeclare anti_injection() (previously declared in /var/www/restrito2/SQL.php:13) in /var/www/restrito2/SQL.php on line 20

 

Sou novato no php e estou usando o php5 será que o problema está na versão que estou usando??

Será que tem algo que mudou em relação ao injection do php4 para o 5??

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif/> Maikon.... Muito 10 seu script, fufa direitinho, cara! eu estivi ha muito tempo a busca de um, seguro e eficaz, e esse me trouxe soluções!!

quero deixar aqui a minha ajuda, logo mais estarei modificando algumas coisa!

Se você quiser posso postar aqui!

Tive a seguinte idéia, ao invés de um sistema de Mudança de Senha.

Cologar um sistema q envie a senha para o e-mail do usuário cadastrado, pois assim só mesmo o usuario poderar ter acesso a senha! Pois pensei, se algum estranho souber somente o Login e o e-mail de alguem q tem acesso ao sistema, pode facilmente mudar a senha pelo sistema de Mudança de Senhas, e logar! Entende????? Assim fica fácil, nem precisa da senha antiga, para entrar no sistema!

Mais atenção não é um critica!

Pois como já disse seu sistema, é Ótimo, mesmo!

você mereçe Palmas, pois se seu sistema não fosse bom, não estaria até agora sendo comentado, a quase um ano de comentarios! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

_M!KOL_

Implementei o seu sistema de login no sistema intranet que estou desenvolvendo, mais não consigo resolver um erro que está aparecendo referente ao SQL injection.

ERRO:

Fatal error: Cannot redeclare anti_injection() (previously declared in /var/www/restrito2/SQL.php:13) in /var/www/restrito2/SQL.php on line 20

Sou novato no php e estou usando o php5 será que o problema está na versão que estou usando??
Será que tem algo que mudou em relação ao injection do php4 para o 5??

Desculpe a longa demora para responder, é usado PHP 5, o seu problema é que ele está adicionando a função anti_injection(); 2 vezes :)/>~ talvez seja seu include que você esteja fazendo, só dando uma olhada para ver o erro mesmo.

 

 

Maikon.... Muito 10 seu script, fufa direitinho, cara! eu estivi ha muito tempo a busca de um, seguro e eficaz, e esse me trouxe soluções!!
quero deixar aqui a minha ajuda, logo mais estarei modificando algumas coisa!
Se você quiser posso postar aqui! 
Tive a seguinte idéia, ao invés de um sistema de Mudança de Senha.
Cologar um sistema q envie a senha para o e-mail do usuário cadastrado, pois assim só mesmo o usuario poderar ter acesso a senha! Pois pensei, se algum estranho souber somente o Login e o e-mail de alguem q tem acesso ao sistema, pode facilmente mudar a senha pelo sistema de Mudança de Senhas, e logar! Entende????? Assim fica fácil, nem precisa da senha antiga, para entrar no sistema! 
Mais atenção não é um critica!
Pois como já disse seu sistema, é Ótimo, mesmo!
você mereçe Palmas, pois se seu sistema não fosse bom, não estaria até agora sendo comentado, a quase um ano de comentarios!

Eu ja pensei em por, no lugar do "mudar senha" para enviar no e-mail porém, isso deixo para cada usuário, eu fiz somente simples e comentado para que aprendam a fazer!, mas se quiser por o sistema, eu apenas liberei o sistema padrão modificações estão abertas :lol:/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.