Ir para conteúdo

Arquivado

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

Web Design Valdeci

Criar sessão dados vindos url

Recommended Posts

Bom Dia,

 

Estou desenvolvendo um sistema onde os dados para login são enviados via ulr, sem ser por post ou get. Utilizo o sistema abaixo para fazer a confirmação e efetuar o login criando uma sessão no cookie.

 

Só que ele somente sustenta a sessão se os dados forem enviados via post ou get. Quando envio direto pela url tipo:

 

www.site.com.br/logar.asp?login=valdeci&senha=12345

 

Ele acessa a primeira página mas quando tentamos navegar ele desloga e perde a sessão. Já fiz um teste imprimindo os dados da sessão e os mesmo são recebidos na pagina principal depois do login, mas quando tentamos navegar ele perde a sessão e volta para a pagina de login, eu utilizo o código abaixo para verificar se ainda tem sessão ou não, e ele simplesmente cai voltando a tela de login.

If IsEmpty(Session("login")) Then
Response.redirect("login_associado.html")
End if

Existe alguma maneira de criar a sessão e sustenta-la enviando os dados via url (response.redirect) de um caminho fisico com esse?www.site.com.br/logar.asp?login=valdeci&senha=12345

 

Segue o codigo

<!--#include file="../assets/conexao/conexao.asp" -->
<%
' vamos fazer o request do nosso login e senha que foi enviado via url no formulário
login = request.Querystring("login")
senha = request.Querystring("senha")

' agora vamos usar o replace para evitar que engraçadinhos tenter furar nosso sistema de login
login = replace(login,"'","''")
login = replace(login,"#","''")
login = replace(login,"$","''")
login = replace(login,"%","''")
login = replace(login,"¨","''")
login = replace(login,"&","''")
login = replace(login,"'or'1'='1'","''")
login = replace(login,"--","''")
login = replace(login,"insert","''")
login = replace(login,"drop","''")
login = replace(login,"delet","''")
login = replace(login,"xp_","''")
login = replace(login,"select","''")
login = replace(login,"*","''")

' e agora pra a senha
senha = replace(senha,"'","''")
senha = replace(senha,"#","''")
senha = replace(senha,"$","''")
senha = replace(senha,"%","''")
senha = replace(senha,"¨","''")
senha = replace(senha,"&","''")
senha = replace(senha,"'or'1'='1'","''")
senha = replace(senha,"--","''")
senha = replace(senha,"insert","''")
senha = replace(senha,"drop","''")
senha = replace(senha,"delet","''")
senha = replace(senha,"xp_","''")
senha = replace(senha,"select","''")
senha = replace(senha,"*","''")

' feito isso vamos mudar o nome das variaveis para evitar outra tentativa de furos
Session("lgn") = login
Session("snh") = senha

'aqui abrimos a conexão com um banco acess onde estão armazenadas as senhas
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open ("SELECT * FROM usuariosapp WHERE email = '" & Session("lgn") & "' AND senha='"&Session("snh")&"'"), Conexao



if rs.eof then
response.Redirect("errou_senhaC.asp") 'se o cara errar a senha ele vai ser redirecionado para essa pagina
else

Session("login") = "logado"
response.Cookies("logado")=login
response.cookies("logado").expires="31/12/2018"
response.redirect ("principal.asp")
end if
%> 


Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você imprimiu os dados da session, você colocou logo acima do IF de verificação da session vazia ou no inicio de todo o código?

 

Já verificou o session timeout?

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.