Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gente... eu pesquisando na net achei diferentes solucçõe para na hora do acesso restrito ficar realmente restrito, estava super feliz pois estava funcionando tudo direitinho... mas como eu sou um cara que testa varias vezes achei um ponto fraco, eu tenho uma pagina com login e senha para digitar e entrar na area administrativa, ate ai tudo bem, eu digito o login e senha e ele faz o que tem que fazer, meu teste começa ai, eu copiei o caminho da area restrista e depois digitei outro endereço da net.... entrei nesse endereço qualquer, mais ai eu colo no browser o caminho da pagina administrativa, e para a minha tristeza, ele entrou...
la eu tenho um botao sair, é claro que quando eu clico eu encerro a session e volta para o default do site mesmo, mas isso é normal, alguem teria uma solução... ? por favor !!!
Obrigado...
Isso mesmo cara.... eu faço assim veja:
<%
If IsEmpty(Session("admrestrito")) Then Response.Redirect "./index.asp" End If
%>Eu coloco em todas as pgs que eu quero q esteja logado... assim se n tiver logado corretamente ele redireciona para a pg q você quiser chamar... um ex: Ops cara você n está autorizado vou chamar a POLICIA Hehehe!!!
Por favor GRANDE Mário, é isso mesmo?????
Abraços
cria sessions e coloca em cada pagina da area administrativa para eveitar este tipo de acesso direto
Cara... mas eu ja fiz isso... por isso nao consigo entender o que ha de errado...
Veja bem... eu não sei se você's entenderam o problema... toda vez que eu clico no botao sair
ele executa isso abaixo no logout.asp
<%
Session.Contents.Remove("usr")
response.Redirect("../default.asp")
%>
até ai ta tudo bem... clicando no botao sair ele faz o que tem que fazer... o problema é que, nas minhas paginas administrativas eu tenho esse codigo abaixo:
If session("usr")="" Then
Response.Write "Você não está Logado no sistema!"
Response.write "<a href='../default.asp'>Clique aqui para se logar.</a>"
Response.End()
End If
mas se tiver tudo legal, ele contiua o codigo abaixo tranquilamente... o problema é que... como eu havia dito acima nos topicos daqui, eu entro na area administrativa e la eu copio o endereço de onde estou e digito www.qualquer endereco.com.br e chegando nesse endereço qualquer eu colo aquele endereço da area administrativa onde eu estava e volta pra la... porque a session("usr") náo é = "" entao ele executa o codigo abaixo e nao é pra fazer isso concordam, apartir do momento que eu sai da pagina por qualquer meio... ele nao pode voltar, ele deveria dar aquela mensagem acima "Você não está Logado no sistema!", ou seja, ele deveria apagar a session de alguma forma, como eu faço quando eu clico no botao sair.
la no meu default.asp do site mesmo, eu executo <%Session.Contents.Remove("usr_log_ok")%> porque eu fiz um teste assim, nao clico no botao sair, mais eu antes de entrar no administrativo, ou seja, eu ainda estou no site mesmo que digita o login e senha, eu copio o endereço do browser e digito o login e senha, ai beleza, ele entra no administrativo, só que se eu colar no browser o endereço do site, veja bem, estou no administrativo, e colo o endereço do site no browser, ele vai para o site, eu nao cliquei no botao sair se essa linha nao estivesse la no default.asp do site <%Session.Contents.Remove("usr_log_ok")%> tranquilamente eu poderia voltar para o endereço administrativo pelo browser que ele entraria normal... entao isso eu descobri e por isso eu adicionei essa linha no default.asp do site, entao menos um problema, só que eu nao posso saber em qual site o dono do site vai entrar quando estiver no administrativo, ele deveria clicar no botao sair, mas pode ser que ele digite um site qualquer estando dentro do administrativo, ou seja, em nenhum momento o meu codigo executou isso <%Session.Contents.Remove("usr_log_ok")%>, pq simplesmente o dono do site la, nao clicou no botao sair... E AGORA ?
SERA QUE EU CONSEGUIR PASSAR MEU PROBLEMA? vai ver eu nao entendi o que você's me falaram tambem...
mas por favor... se eu falei alguma coisa errada me falem por favor !!!
Valeu
Acredito que fazendo algo na Global.asa deva funcionar.
Olha amigo eu tb sou bem leigo em ASP, mas seu caso acho q é simples... na sua Pg onde tem seus campos de Usuario e Senha você cria uma session ex:
Session("admrestrito") = chq_usuario("usuario")
e nas pgs onde você quer fazer a validação faz a verificação da mesma...
<%
If IsEmpty(Session("admrestrito")) Then Response.Redirect "./index.asp" End If
%>
Como eu disse, eu usso assim em meu site e funciona perfeito, mesmo q eu cole a URL de uma pg qualquer q precisa de login, ele força o redirecionamento, tem q se logar mesmo.
No q eu posso ajudar é isso, caso os grandes expert tiver outras sugestão irão te passar tb ok?
Abraços
E isso funciona quando você entra em outro site e depois volta?
Pelo que entendi ele quer que se o usuário sair do site, assim que voltar, terá que fazer o login novamente.
isso é verdade pois a session nao é perdida instataneamente
o que é feito neste caso é gerar um codigo randomico ou criptografado para aquela sessao ai se o cara sair e depois voltar como o codigo nao estará preenchido pedirá login novamente
Mas a forma como está so permitirá que alguem que ja logou volte para a pagina
Realmente acontece isso sim Anderson... depois q eu me logei a session permanece gravada, mesmo q eu navege em vários sites diferentes (desde que: eu continue com o mesmo browser), eu posso retornar a minha pg de login que eu estarei logado ainda... Agora se eu fechar este browser e abrir-lo novamente, perderei minha session, ai terei q me logar de novo.
Espero q nosso amigo edgard esteja acompanhando esse tópico, pois é o mais interessado...
Abraços
>
Realmente acontece isso sim Anderson... depois q eu me logei a session permanece gravada, mesmo q eu navege em vários sites diferentes (desde que: eu continue com o mesmo browser), eu posso retornar a minha pg de login que eu estarei logado ainda... Agora se eu fechar este browser e abrir-lo novamente, perderei minha session, ai terei q me logar de novo.
Espero q nosso amigo edgard esteja acompanhando esse tópico, pois é o mais interessado...
Abraços
Claro amigos, com certeza estou acompanhando tudo... e isso que você disse agora sobre sair e ai sim funcionar do jeito certo, acontece comigo o mesmo, se eu saio do browser ai sim se eu quiser colar o endereço da area administrativa ele nao deixa... mas só assim né.... fechando tudo... pq se nao... to pesquisando se tem como fazer isso...
eu nao entendi muito bem qual o problema
o cara fez o login e você quer impedir dele abrir uma nova janela copiando a url?
como falei anteriormente uma forma é criar mais um mecanismo como um codigo criptografado ou gerado randomicamente que iria como parametro na url assim se o cara sair da pagina ele teria que ter este codigo tambem
mas vai dar na mesma no caso cara copiar todo o link
um exemplo
http://seusite/admin/index.php?codigo=ca27...799cf94acdb69c4
e este codigo voce testa com o que voce tem gravado em algum outro lugar mas se o cara copiar todo o link e sair do site baste ele colar denovo
acaba dando na mesma
Como disse anteriormente so o fato de voce testar em cada pagina administrativa se o cara ta logado ja deixa bem mais seguro seu site pois so quem ja logou vai poder ver o conteudo
>
como falei anteriormente uma forma é criar mais um mecanismo como um codigo criptografado ou gerado randomicamente que iria como parametro na url assim se o cara sair da pagina ele teria que ter este codigo tambem
mas vai dar na mesma no caso cara copiar todo o link
um exemplo
http://seusite/admin/index.php?codigo=ca27...799cf94acdb69c4
e este codigo voce testa com o que voce tem gravado em algum outro lugar mas se o cara copiar todo o link e sair do site baste ele colar denovo
acaba dando na mesma
Como disse anteriormente so o fato de voce testar em cada pagina administrativa se o cara ta logado ja deixa bem mais seguro seu site pois so quem ja logou vai poder ver o conteudo
Entao beleza... pq isso ele ja faz mesmo... inclusive eu peguei um codigo que a opção daquela seta do browser de poder voltar eu retirei... ficou muito mais dificil de voltar... ate pq eu perguntei para o cliente se eu podia tirar para ficar um pouco mais seguro... e ele me disse que nao teria problema... entao... se bem que nao tem tanta importancia, pq se eu zero session na hora que ele retorna para o site, ele nao vai conseguir voltar se ele nao preencher o login e senha... mas beleza...
Bom... entao é normal acontecer isso que esta acontecendo? O Anderson Roberto falou algo sobre a global.asa, sera que tem que mexer ali ?
nao sei se mudará muito nao pois continuara armazenada a session
so acabaria com o logado se destruir a session
>
nao sei se mudará muito nao pois continuara armazenada a session
so acabaria com o logado se destruir a session
Entao é isso mesmo, o que eu fiz ja ta certo !!! vai ficar assiim mesmo
Beleza galera... até daqui a pouco, pq tenho certeza que outras duvidas surgiram no processo do meu site rs !!!
Abraços... OBRIGADO
opa
seguinte, eu uso uma funcao que trava a pagina em todos os formularios e qq area administrativa
ele veta o acesso caso venha "de fora", uma nova janela, ou em modo local
function trava_pg()
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") and Request.ServerVariables("HTTP_REFERER") = "" THEN
response.write "Página inválida!"
response.End()
end if
end function
você pode adaptar e trocar o response.write "Página inválida!" e zerar a session e redirecionar pro formulario de login
espero que sirva http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
[]s
>
opa
seguinte, eu uso uma funcao que trava a pagina em todos os formularios e qq area administrativa
ele veta o acesso caso venha "de fora", uma nova janela, ou em modo local
function trava_pg()
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") and Request.ServerVariables("HTTP_REFERER") = "" THEN
response.write "Página inválida!"
response.End()
end if
end function
você pode adaptar e trocar o response.write "Página inválida!" e zerar a session e redirecionar pro formulario de login
espero que sirva http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
[]s
FUNCIONOU MESMO !!! OBRIGADO CARA !!!
opa
estamos ai pra isso
eu gosto tb de gravar todos os dados possiveis quando essa funcao é executada, pra saber quem esta tentando acessar via local, principalmente se for tentado via SQLinjection
sempre tem gente que se cadastra e roda tudo em local pra entrar na adm, é bom saber quem sao os espertinhos, ai você vai e desativa a conta do cara por seguranca.
e ja que você ta falando sobre seguranca, a minha eu uso:
login, senha, cpf e data de nascimento
chega de login e senha apenas
[]s e boa sorte
cria sessions e coloca em cada pagina da area administrativa para eveitar este tipo de acesso direto