Jump to content
Fórum Script Brasil
  • 0

[resolvido] Segurança


Notax
 Share

Question

Penso que esta dúvida seja um tanto simplória... mas não encontrei a resposa de forma alguma... por isso estou mais uma vez lançando mão aqui do fórum... desculpem pelo incomodo!

Eu to fazendo um site com acesso restrito... ou seja, quando um usuário digita login e senha é enviado automaticamente para o endereço www.meudominio.com/o_login_que_ele_digitou

ou seja... pra cada usuario que cadastra um login eu crio uma pasta com o nome do mesmo login e nesta pasta tem os arquivos index e etc exclusivos deste usuário...

o problema, é que hoje, o que acontece é que se eu digito simplesmente: www.meudominio.com/algum_login_cadastrado eu consigo acesso as informações sem ter que digitar usuário ou senha...

Alguém saberia como me ajudar para evitar este tipo de problema?

Agradeço a atenção e um forte abraço a todos!

Edited by Notax
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Oi Bareta... valeu a força... olha só... não to entendendo o seguinte:

meu arquivo default.asp fica na pasta 'final', ou seja, é lá a primeira página que o usuário acessa pra fazer o login... após logado ele é redirecionado automaticamente para a pasta 'login_usuário'...

o meu default.asp tá assim:

<%
Dim SrtMsg, erro
SrtMsg = cstr(Request.QueryString("erro"))
Select Case SrtMsg
Case "1"
erro = "Digite usuário"
Case "2"
erro = "Digite senha"
Case "3"
erro = "Nome de usuário não encontrado."
Case "4"
erro = "Senha incorreta."
Case "5"
erro = "Você não está logado."
end select
%>
<html><head><title>Teste em ASP com DB</title></head>
Digite abaixo seu login e senha para acessar a área restrita:<br>
<hr size="1" color="black">
<%if len(SrtMsg) <> 0 then%><br><font color="red"><%=erro%></font><br><%end if%>
<form action="verificar_usuario.asp" method="POST">
<table><tr><td>Usuário:</td><td align="right"><input type="text" name="usuario"></td></tr><tr><td>Senha:</td><td align="right"><input type="password" name="senha"></td></tr>
<tr><td align="center" colspan="2"><input type="submit" value="login"></td></tr></table>
<hr size="1" color="black">
</form></body></html>
e o arquivo que faz a verficção se chama verificar_usuario.asp e está assim, tb na pasta final:
<!--#include file="conexao.asp"-->
<%
Dim usuario, senha
usuario = Trim(LCase(Request.Form("usuario")))
senha = Trim(LCase(Request.Form("senha")))
if len(usuario) = 0 then
response.redirect "default.asp?erro=1"
end if
if len(senha) = 0 then
response.redirect "default.asp?erro=2"
end if
Call AbrirDB
sql = "SELECT * FROM login WHERE nome='" & usuario & "'"
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open sql,ConnDB,3,3
if not RS.EOF then
if RS("senha") <> senha then
response.redirect "default.asp?erro=4"
else
Session("login") = True
response.redirect "logado.asp"
end if
else
response.redirect "default.asp?erro=3"
end if
RS.close
Set RS = Nothing
Call FecharDB%>
Quando o cara digita www...../nome_do_usuario... automaticamente encontra o arquivo index.asp desta página e acessa os conteudos sem maiores problemas... então... como é que eu vou fazer pra ao acessar o index.asp da pasta nome_usuario consultar se ele efetuou o login lá no wwwroot em primeiro momento? Segundo sua resposta, eu tava pensando se derepente eu não teria que fazer ele conferir o login no próprio index.asp... mas quando tento ele já não encontra o arquivo include file.... tentei com o index assim (nome_usuario/index.asp)
<!--#include file=".../final/conexao.asp"-->
<%
Dim usuario, senha

usuario = Trim(LCase(Request.Form("usuario")))
senha = Trim(LCase(Request.Form("senha")))

if len(usuario) = 0 then
response.redirect "default.asp?erro=1"
end if

if len(senha) = 0 then
response.redirect "default.asp?erro=2"
end if

Call AbrirDB

sql = "SELECT * FROM login WHERE nome='" & usuario & "'"
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open sql,ConnDB,3,3

if not RS.EOF then

if RS("senha") <> senha then
response.redirect "default.asp?erro=4"
else
Session("login") = True
response.redirect "logado.asp"
end if

else

response.redirect "default.asp?erro=3"

end if

RS.close
Set RS = Nothing
Call FecharDB%>


<html>

<head>
<title>::::::</title>
</head>

<frameset framespacing="0" border="0" rows="104,19%,*" frameborder="0">
  <frameset cols="*,81%">
  <frame name="logo" scrolling="no" noresize target="meio" src="logo.asp" marginwidth="5" marginheight="5" style="border-bottom-style: double; border-bottom-color: #008000">
    <frame name="util" src="util.asp" marginwidth="12" marginheight="0" scrolling="no" style="border-bottom-style: double; border-bottom-color: #008000">
  </frameset>
  <frame name="menu" target="geral" src="menu.html" scrolling="auto" marginwidth="12" marginheight="16" style="border-bottom-style: double; border-bottom-color: #000000">
  <frame name="geral" src="geral.asp" scrolling="auto">
  <noframes>
  <body>

  </body>
  </noframes>
</frameset>

</html>

o erro que aparece é que ele não encontra o include file...

o que acha?

valeu mais uma vez... forte abraço!

Link to comment
Share on other sites

  • 0
Guest Ajudando por gostar de ajudar

Olá Notax.

eu não entendi o que você quer fazer...verificar se o usuário está logado ou se ele está na página de login.

Dei uma olhada em seu script e realmente ele está um pouco confuso na arquitetura do login, em especial na parte de ferificação que é diferente de orientação de erros.

caso seja possível fale mas sobre oque você gostaria de fazer, uma verificação de login (se já está logado ou não) ou uma orientação de login (informações de erros para o usuário efetuar o login)

no aguardo.

Link to comment
Share on other sites

  • 0

O amigão... valeu a atenção... então...

o que eu to querendo é tornar o sistema mais seguro... um pouco mais... nada grandioso! o que acontece hoje é que o usuário ao digitar seu login e senha ele é remetido a uma página que tem exatamente o mesmo nome de seu login... mas o que acontece é que da mesma forma se ele simplesmente digitar o endereço www.blablabla.com/seulogin ele consegue acessar todo o conteúdo que deveria estar disponível somente ao digitar a senha...

então o que eu queria é se ele tentar acessar o conteudo exclusivo sem digitar seu usuario e senha que ele seja remetido automaticamente a pagina de login! será que eu consegui deixar claro agora?

bom... valeu pela atenção e espero que eu tenha conseguido explicar...

um forte abraço.

Link to comment
Share on other sites

  • 0
Guest Ajudando por gostar de ajudar

Olá Notax.

Não tava entendo isto que você me disse agora, eu estava pensando que você queria gerar uma validação com acesso restrito ao diretorio e não a página em si, mas agora deu para entender.

seu sistema redireciona o usuário para uma pagina com o nome de login dele e se ele não digitar a senha e colar no navegador o nome de usuário dele ele tem acesso livremente, com isto você quer bloquear isto, ok deu para entender.

bom sua saida mais logica é usar a sessão login e coloca-la no topo da pagina, acredito que a pagina seja gerada altomaticamente, desta forma todos os usuários são bloqueados.

coloque isto no topo desta pagina onde o usuário tem acesso digitando a senha e login, coloque na pagina do usuário.

<% 
IF Session("login") <> True then
response.redirect "default.asp?erro=3"
End IF
%>

desta forma se ele não efetuou o login a session não será true e ele será redirecionado para o default, mas como não sei se o default está no mesmo diretorio ai você muda como for.

espero ter ajudado.

Dica:

Quando você usa este tipo de segurança a manipulação mais facíl é com session sobre login como você fez, com isto você trabalha melhor sua logica.

boa sorte, forte abraço.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...