Inquiridor
Cotrole de acesso

Pergunta
-
Pessoal
Estou fazendo um site com ASP e SQL que tem uma area restrita a usuarios cadastrador, então criei a area de login e a pagina que verifica usuario e senha.
Se tudo tiver ok ele gera variaveis de SESSÃO para identificar que o usuario esta logado.
Na pagina que verifica usuario e senha:
sql="SELECT usuario.* FROM usuario WHERE usr = '" & vUSR & "' AND psw = '" & vPWS & "'"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open inst_sql, conn, 3, 3IF Rs.RecordCount = 0 Then
response.Redirect "login.asp?Msg=1"
ELSE
Session("LOGADO") = "ON"
End If
Nas paginas do site eu começo com este teste para verificar se o usuario esta logado...
<%
Pessoal tem algum problema de segurança usar variaveis SESSION para verificar se o usuario esta logado?
IF Session("LOGADO") <> "ON" OR Session("LOGADO") = "" THEN
response.Redirect "logar.asp?Msg=1"
Response.End
ELSE %>
Todas as Respostas
-
Rogerio, nunca tive problemas, mas entanto, alguns dados que transmito pelas sessions de logon sao criptografadas e também o site nao é tao visado por hackers, pelo menos eu acho.
Abaixo segue uma matéria sobre isso de uma olhada.
http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=6585&zoneid=24&resumo=
Creio que se voce criptografar as informaçoes também seria uma segurança a mais, segue matéria sobre criptografia.
http://forum.imasters.uol.com.br/index.php?showtopic=126822
Abraços
Estevam
-
Olá Rogério,
nunca tive problemas, aliás, acredito que esta seja a solução mais correta no seu caso.
Acrescentando à resposta do Luiz, é bastante importante sempre proteger suas páginas do Sql Injection, uma falha bastante antiga mas que até hoje perturba alguns sites da web.
Att,
Felippe Medeiros.
-
-
A falha de segurança não está na utilização de sessions para verificar se o usuário está logado ou não, a vulnerabilidade está na forma como vc está validando o usuário no banco.
Essa string SQL pode ser facilmente quebrada por uma SQL Injection... se você está utilizando um banco Sql Server eu te recomdaria criar uma stored procedure e no asp a utlização do do objeto ADODB.Command somada a implementãçao de parâmetros tipados e com o limite de caracteres restrito aos campos de usuário e senha no banco