segunda-feira, 8 de novembro de 2010

Como bloquear páginas de forma simples:

Antes de qualquer coisa, saiba que não é seguro utilizar javascript para proteger páginas, porque os comandos javascript são executados no navegador, "depois" que a página já está carregada. Fora que se o usuário desativar o javascript no navegador, a página poderá ser aberta. Outra forma: com o endereço em mãos, a pessoa cria uma página HTML básica com um link para a sua, e então clica com o botão direito nesse link e escolhe salvar como... Depois abre a sua página num editor (e não no navegador) e lá se foi a proteção. Mas é um recurso que certamente afasta usuários comuns e pessoas menos fuçadoras... Use por sua conta e risco! A idéia do script aqui apresentado eu peguei numa página que estava "protegida" por ele... He he.

O JavaScript tem a função "prompt", que exibe uma tela solicitando que o usuário digite alguma coisa, e retorna o valor digitado como string (texto). Você pode colocar esse código antes de qualquer coisa na sua página (ou depois da tag <title>, para que o título apareça), e verificar: se o que o usuário digitar for o que você quer, então libera o acesso; caso contrário, não libera.

Simples:

<script language=javascript>
senha = '123456';
senhadig = prompt("Digite a senha","")
if (senha != senhadig){
alert('Acesso negado!');
top.location.href='erro.htm';
}
</script>

A variável "senha" armazena a senha correta (que não é segura porque fica no código fonte da página, lembre-se disso), e a variável "senhadig" armazenará a senha digitada pelo usuário, que será capturada por meio da função "prompt". Depois o comando "if" verifica: se a senha for diferente da senha digitada [if (senha != senhadig)] então ele mostra uma mensagem numa janela de alerta, e redireciona o usuário para uma página de erro (que pode ser qualquer página). Se a senha estiver certa, não será verificado mais nada, e o conteúdo da página será exibido.

Se você não se sentir seguro para usar isso, pode esconder o nome da página. Por exemplo, você nomeia uma página secreta como "coisa123.htm", e a senha será "coisa123". Como fazer isso? Coloque isso na index.htm (ou na página que conterá a entrada):

<script language=javascript>
pag = prompt("Digite a senha","") + '.htm'
top.location.href = pag;
</script>

Só que aí, se o usuário digitar um nome qualquer, ele seria remetido ao endereço seusite/QUALQUERCOISA.htm, o que provavelmente resultaria na página de erro 404 (arquivo não encontrado). Tudo bem, pelo menos sua página protegida não foi exibida...

Mas se alguém digitar a URL completa da página protegida, ela será aberta normalmente, o que é inconveniente dependendo do site. Se ela estiver listada em páginas de busca, por exemplo, já era...

Resumindo: usar javascript para colocar senha protegerá suas páginas de pessoas que desconheçam o funcionamento das páginas da web, a maioria, digamos, visto que a maioria é formada por usuários "normais". Sites que requeiram proteção "de verdade" devem utilizar outras formas de proteção, como fornecidas pelo próprio servidor (por exemplo, proteção de diretório) ou recursos em ASP, PHP, etc. Mas isso já é mais complexo, e não é qualquer servidor que permitirá a página, os gratuitos por exemplo geralmente não fornecem suporte a ASP nem PHP.

Um comentário: