Ir para conteúdo

POWERED BY:

Arquivado

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

Patrique

Questão segurança, é correto?

Recommended Posts

Fala ae pessoal, estou com uma dúvida simples e gostaria da ajuda dos amigos.

 

Estou fazendo um sistema de mailbox, existe a página /mail/escrever.asp

 

So terão acesso a esta página usuário registrados e logado no sistema, por isso eu preciso verificar se o usuário esta logado ou não para deixa-lo ver a página ou não.

 

Se o usuário é logado no sistema o mesmo cria uma session assim

 

session("logado") = true

dae na página /mail/escrever.asp no começo do code eu utilizo isso para verificar se o mesmo esta logado no sistema ou não, faço a verificação assim

 

<% If Session("logado") = false Then Response.Redirect("/login.asp") End If %>

Desta forma se ele identifica que o usuário não esta logado ele redireciona.

 

Esta funcionando certinho, porém eu to meio bolado, esta forma é correta? será que teria como o usuário burlar e conseguir entrar? estou utilizando apenas um if para a verificação e um redirect no response, parece-me muito simples, porém na questão segurança eu não sei se esta forma é realmente segura.

 

Alguém ae poderia me dizer que desta forma é segura ou não?

 

desde já agradeço aos amigos.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faço assim: na tela de login verifico se o user esta logado corretamente, tipo, recupera os dados e

 

varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
varlogin=Replace(varlogin,"'","")
varsenha=Replace(varsenha,"'","")
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if

caso exista algum erro redireciona para a pagina de login com um parametro na url, para recuperar e saber o k o user fez...

depois você pode até montar um log de acesso, para isso, na pagina k ele é redirecionado, faço um SELECT CASE

para ver os possoveis erros

 

<%
Select case varmsgeof
case 1 'login vazio
response.write("<script>novajan();</script>")
case 2 'senha vazia
response.write("<script>novajan();</script>")
case 3 'login inválido
response.write("<script>novajan();</script>")
case 4 'senha incorreta
response.write("<script>novajan();</script>")
case 5 se user jah logado
response.write("<script>novajan();</script>")
case 6   ' user naun está logado,por isso naun tem permissaun para entrar em atualizacaun/suporte
response.write("<script>novajan2();</script>")
end select %>

onde novajan é um javascript

 

<script language="javascript">
function novajan(){
window.open ("erro_treina.asp","Erro","width=240,height=240,scrollbar=no,status=yes,resize=no")
}
</script>

na pagina k executa o login

 

Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
	if rs.eof then
	   response.redirect("logincli_form_treina.asp?msgeof=3")
	else
		if Lcase (varsenha) <> Lcase(rs("senha")) then
			response.redirect("logincli_form_treina.asp?msgeof=4")
			session("logado")=False
		else
			session("logado")=True
			session("senha")=varsenha
			session("login")=varlogin
			response.Redirect("administracao_treina.asp")
		end if
	end if

depois nas outras onde o user for acessar, você faz

 

<% If Session("logado") = false Then
 Response.Redirect("login.asp")
 End If %>

caso o user esteja em umas das condiçoes do SELECT CASE, você redireciona, tenho um sistem k utiliza o bd, com uma flag, onde o user fez login, você atuaiza, assim ele nao pode logar em outra maquina...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, entendi, a forma posta por você é basicamente a forma que eu uso, valew ae, tava preocupado por questão de segurança, mais ainda bem que é "seguro"

 

Valew xam

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode implementar mais usando o mesmo eskma do msn e outros, se logar em uma maq. nao pode mais logar em outra, e junto aliado a um log de acesso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza,mano, kker coisa tamu ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa..

 

Tratando-se de segurança.. acho interessante ressaltar, que você deve na área de login, proteger contra sql injection.. que é o básico.

 

Depois, recomendo gerar um log de acessos.. guardando datas, horas, usuarios, e tudo o que puder..

Para, em algum caso de problemas, poder identificar quem exatamente logou e quando logou.

 

No mais, o xamburzum já disse tudo!

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

a forma de verificar é essa mesmo patrique, não tem muito o que inventar aqui

 

o importante mesmo é como disse o dark0 é não permitir que usuários não logados enganem seu sistema com injections

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu uso sempre este jeito para SQL inject

 

você poe usar assim tb.

 

Anti-SQLInject

 

Function SafeSQL(sInput)
  TempString = sInput
  'sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", "(", ")", "/", "\", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|") 
  sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", "(", ")", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|") 
  For iCounter = 0 to uBound(sBadChars)
	TempString = replace(TempString,sBadChars(iCounter),"")
  Next
  SafeSQL = TempString
End function

 

 

E para usar na SQL

 

 

SQL = "SELECT * FROM Cal_Events WHERE Cal_EventID = " & SafeSQL(request.querystring("eventID"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pat

 

tb to montando o meu sistema de login e sempre usei este mesmo if igual o seu com session true/false

 

mas, como você disse, 1 if parece pouco... e realmente acho que seja

 

me deparei com uns casos que fiquei meio perdido, pois nao sabia que era tao grave - roubo de session e cookies

 

 

 

 

procure sobre - Cross-Site Scripting, Cross-Site Request Forgery

 

o que achei falava sobre logar roubando cookie

 

nao sei nada a respeito, o que encontrei é meio vago, mas to procurando mais ainda

 

 

 

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

um item pouco divulgado é session mirror, você sekestrando a sessaun do user...

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.