A sua Loja Virtual - Protegendo o seu site com Senha
 

O seu banco de dados e suas tabelas estão armazenadas em um servidor , e você poderá fazer a manutenção das tabelas remotamente criando uma interface com a linguagem ASP que permita ao usuário conectar-se ao seu banco de dados e atualizar as suas tabelas. Naturalmente este acesso deverá ser controlado e restrito por motivos óbvios . 
 

 

Para criar uma loja virtual usando ASP .NET acompanhe o curso no link : 

ASP .NET - Criando um site completo com carrinho de compras (Curso)

 

Vamos mostrar como criar esta interface usando páginas ASP onde somente usuários cadastrados poderão acessar o seu banco de dados. Os usuários deverão ser identificados e se estiverem cadastrados terão a  a permissão para acessar o banco de dados.

Existe muitas maneiras de você implementar a segurança e proteger o acesso a suas páginas usando ASP. Vamos mostrar um método simples que pode ser utilizado em seus scripts. Usaremos o banco de dados (esoft.mdb) onde criaremos uma tabela chamada usuarios na qual estarão armazenados o nome e a senha de cada usuário cadastrado. (veja estrutura da tabela abaixo):
Abaixo os usuários , senhas e níveis cadastrados
Inicialmente será apresentada ao usuário uma tela onde usamos um formulário solicitando o seu nome e a senha. Após informados iremos checar se o usuário , senha e nivel estão cadastrados na base de dados. Se a senha e nome do usuário não conferirem a sessão será abandonada.
 
Os arquivos de script ASP que usaremos neste exemplo são descritos a seguir:

login.asp – o arquivo que gera a tela de login solicitando a senha e o nome do usuário.

resposta.asp – o arquivo ao qual é passado os dados informados pelo usuário.
 
Vejamos agora cada tela e seu código associado comentados:
<html>
<head>
<title>login.asp</title>
</head>
<body bgcolor="aqua">
<form action="resposta.asp" method="POST">
Informe nome e senha:
<p>
Nome -&gt; <input NAME="nome" size="20"><br>
Senha -&gt; <input type="password" NAME="senha" size="20"><br>
<hr>
<input type="submit" value="Conectar">
<input type="reset" value="Limpar">
</form>
</body>
</html>
Aqui temos a utilização de um formulário com as seguintes características:
A ação será direcionada para o arquivo resposta.asp - <form action="resposta.asp" method="POST">

formulário pede o nome ; <input NAME="nome" size="20">

A utilização do elemento caixa de senha <input type="password" NAME="senha" size="20"> solicitando a senha do usuário. (Asteriscos serão mostrados enquanto se digita a senha).
 
O arquivo asp que processa a resposta do usuário é o arquivo resposta.asp cujo código é dado a seguir:
<%
Option Explicit

'Declaração das Variáveis 
Dim conntemp
Dim nome_u
Dim senha_u
Dim Sqltemp
Dim rstemp
'--------------------------------------
'Abre conexão com o banco de dados
'--------------------------------------

Sub Abre_Conexao
  Set conntemp = Server.CreateObject("ADODB.Connection")
  conntemp.Open Application("Conecta_bd")
End Sub

'--------------------------------------
'Fecha conexão com o banco de dados
'--------------------------------------

Sub Fecha_Conexao
  conntemp.Close
  Set conntemp = Nothing
End Sub

'Abre conexão c/o banco de dados
Abre_Conexao

nome_u = request.form("nome")
senha_u = request.form("senha")

'monta a instrução SQL para verificar se o usuário existe
sqltemp = "select * from usuarios where usuario='"
sqltemp = sqltemp & nome_u & "'"

'verifica se o nome informado esta no arquivo
set rstemp=conntemp.execute(sqltemp)
'se o nome nao estiver cadastrado informa ao usuário

<html>
%>
<head>
<TITLE>resposta.asp</TITLE>
</head><body bgcolor="#FFFFFF">
<%
If rstemp.eof then %>
    <h1> Não existe usuario com o nome <%=nome_u%> cadastrado !<p> </h1>
    <h1> Tente <A href='login.asp'>Conectar </a> novamente </h1>
    <hr>
   <%
   response.end
end if
'verifica se a senha informada esta cadastrada
If rstemp("Senha") = crypt(senha_u) then
   session("nome") = rstemp("usuario") 
   session("nivel") = rstemp("nivel") 
   Response.write "Usuario = " & nome_u%>
  <p>
  <%
  response.write "Nivel = " & session("nivel")%>
  <hr>
  <H1>Usuário conectado com sucesso !!! </H1>

<h2>Clique aqui  <A href='manutencao.asp'> Manutencao </a> para entrar. </h2>

<%
else
  %>
  Senha não reconhecida <p> 
  <h1> Voce não esta autorizado a ler esta página </h1> 
  <hr> 
  <h1> Sua sessão foi encerrada ! </h1> 
  <% response.end 
  session.abandon
end if
'fecha e destrói os objetos criados
Fecha_Conexao
%>
</body>
</html>

Se o usuário informar um nome que não esta cadastrado o processamento do arquivo resposta.asp retornará :

Se o usuário informar a senha incorreta o processamento do arquivo resposta.asp retorna:

Informando a o nome e a senha correta teremos o seguinte:
Você deve ter o cuidado de salvar o banco de dados com a tabela de senhas em um diretório separado e protegido.

Para tornar este processo mais eficiente podemos usar uma rotina para criptografar a senha gravada no banco de dados de forma que se por algum motivo o banco de dados com as senhas cair em mãos impróprias as senhas estejam ininteligíveis. Mostraremos como fazer isto a seguir.

Para criptografar/descriptografar as senhas usadas podemos usar a função VBScript cujo código é exibido a seguir :

<SCRIPT LANGUAGE="VBScript">
function Crypt(Senha) 

Dim strTempChar

For i = 1 To Len(Senha)

If Asc(Mid$(Senha, i, 1)) < 128 Then
    strTempChar = Asc(Mid$(Senha, i, 1)) + 128
ElseIf Asc(Mid$(Senha, i, 1)) > 128 Then
    strTempChar = Asc(Mid$(Senha, i, 1)) - 128
End If

Mid$(Senha, i, 1) = Chr(strTempChar)

Next i

Crypt = Senha

End Function

</SCRIPT>

 

A sua chamada deverá ser feita quando da verificação da senha do usuário :

 

    If rstemp("Senha") = Crypt(senha_u) then ...

 

Devemos alterar o script para o caso da senha estar correta. Nesta caso iremos permitir que o usuário acesse o sistema de manutenção onde poderá realizar as alterações dos dados nas tabelas do sistema :

 

<h2>Clique aqui  <A href='manutencao.asp'> Manutencao </a> para entrar. </h2>

 

A mensagem de conexão bem sucedida será exibida e o link para acesso a manutenção dos arquivos do banco de dados também, como abaixo: 

 

Ao clicar no link , o arquivo manutencao.asp será executado e exibirá o menu de opções de manutenção do sistema.

 

Agora vamos inserir nos arquivos login.asp e resposta.asp o código que exibe a identificação da nossa loja virtual e dar uma melhorada no alinhamento dos campos. Para fazer isto você pode usar o Microsoft Frontpage ou até o FrontPage Express. Veja abaixo a tela com os ajustes :

 

O código para o arquivo login.asp já ajustado é o seguinte:

<html>

<head>

<title>login.asp</title>

<TITLE>a sua loja virtual</TITLE>

<META content="text/html; charset=windows-1252" http-equiv=Content-Type>

<META content="Microsoft FrontPage 4.0" name=GENERATOR><STYLE>.copyright {

COLOR: #ced6e8; FONT-WEIGHT: normal; TEXT-DECORATION: none

}

<STYLE>

.branco {COLOR: #ffffff; FONT-WEIGHT: normal; TEXT-DECORATION: none }

.preto {COLOR: #000000; FONT-WEIGHT: normal; TEXT-DECORATION: none }

A:hover {TEXT-DECORATION: underline}

</STYLE>

</HEAD>

<BODY bgColor=#ffffff link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<TABLE border=0 cellPadding=1 cellSpacing=0 width="654">

<TBODY>

<TR>

<TD bgcolor="#FFFFFF" width="650">

<p align="center"><b><font color="#008080" size="5" face="Verdana">JcmSoft

- A sua Loja Virtual</font></b>

</TD></TR>

<tr>

<TD align=middle bgColor=#008080 width="650">

<p align="center"><B><FONT color=#FFFFFF

face=arial size=-2>Copyright JcmSoft. Todos os direitos reservados</FONT></B></p>

</TD>

</tr>

<TR>

<TD bgcolor="#FFFFFF" width="650">

<table border="0" width="100%">

<tr>

<td width="100%">

<p align="center"><font face="Verdana" size="3">Acesso a

Manutenção dos dados:</font></p>

<hr>

</td>

</tr>

</table>

</TD></TR></TBODY></TABLE>

<TABLE border=0 cellPadding=0 cellSpacing=0 width="654">

<form action="resposta.asp" method="POST">

<font size="2"><b>

Informe nome e senha:</b></font>

<hr>

<table border="0" width="100%">

<tr>

<td width="32%"><font size="2">

Nome :&nbsp;</font></td>

<td width="68%"> <input NAME="nome" size="20"></td>

</tr>

<tr>

<td width="32%"><font size="2">

Senha :</font></td>

<td width="68%"><input type="password" NAME="senha" size="20"></td>

</tr>

</table>

<hr>

<table border="0" width="100%">

<tr>

<td width="50%">

<p align="center">

<input type="submit" value="Conectar">

</td>

<td width="50%">

<p align="center"><input type="reset" value="Limpar">

</td>

</tr>

</table>

<p align="left">&nbsp;

</form>

</body>

 

 

O arquivo resposta.asp , após os ajustes , possui o código abaixo:

<TITLE>resposta.asp</TITLE>

</head><body bgcolor="#FFFFFF">

<TABLE border=0 cellPadding=1 cellSpacing=0 width="654">

<TBODY>

<TR>

<TD bgcolor="#FFFFFF" width="650">

<p align="center"><b><font color="#008080" size="5" face="Verdana">JcmSoft

- A sua Loja Virtual</font></b>

</TD></TR>

<tr>

<TD align=middle bgColor=#008080 width="650">

<p align="center"><B><FONT color=#FFFFFF

face=arial size=-2>Copyright JcmSoft. Todos os direitos reservados</FONT></B></p>

</TD>

</tr>

<TR>

<TD bgcolor="#FFFFFF" width="650">

<table border="0" width="100%">

<tr>

<td width="100%">

<p align="center"><font face="Verdana" size="3">Acesso a

Manutenção dos dados:</font></p>

<hr>

</td>

</tr>

</table>

</TD></TR></TBODY></TABLE>

<%

If rstemp.eof then %>

<h1> Não existe usuario com o nome <%=nome_u%> cadastrado !<p> </h1>

<h1> Tente <A href='login.asp'>Conectar </a> novamente </h1>

<hr>

<%

response.end

end if

'verifica se a senha informada esta cadastrada

If rstemp("Senha") = senha_u then

session("nome") = rstemp("usuario")

session("nivel") = rstemp("nivel")

Response.write "Usuario = " & nome_u%>

<p>

<%

response.write "Nivel = " & session("nivel")%>

<hr>

<H1>Usario conectado com sucesso !!!</H1>

<p><font face="Verdana" size="1"><p></font>

<h2>Clique aqui <A href='manutencao.asp'>Manutencao </a> para entrar. </h2></font>

<%

else

%>

Senha não reconhecida <p>

<h1> Voce não esta autorizado a ler esta página</h1>

<hr>

<h1> Sua sessão foi encerrada !</h1>

<% response.end

session.abandon

end if

'fecha e destrói os objetos criados

Fecha_Conexao

%>

</body>

</html>

 

 

Na continuação deste artigo estaremos tratando do arquivo manutenção.asp que exibe o menu de opções que permitirá ao usuário escolher o tipo de manutenção que vai realizar: incluir , alterar ou excluir dados das tabelas. 

 

Nota: No Super DVD Visual Basic que inclui o Super CD ASP Total existe um gerador de formulários chamado DataForm que gera scripts ASP a partir da estrutura das tabelas e assim você pode criar facilmente a administração do sistema. Além disto existem muitas ferramentas no Super CD ASP que o auxiliam na criação de páginas dinâmicas.

 

 Parte Anterior Próxima parte

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti