Não permitir que acessem diretamente

Destinado a Artigos, Tutoriais e Matérias de colunistas, base em PHP, MySQL, JavaScript, HTML, CSS, jQuery, etc... entre outros.

Moderador: web

responder a dúvida

Não permitir que acessem diretamente

Mensagem por roxzin Offline » Dom Jun 14, 2009 9:11 pm


Quando usamos Ajax em nossas aplicações trabalhamos com um script específico que devolve os dados preparados para que seja interpretado e mostrado no browser.

Em algumas ocasiões não é de nosso agrado que os usuários acessem diretamente as URLs utilizadas em Ajax.

Para evitar esta situação pode-se usar um script simples. Será levado em consideração o valor da variável de ambiente HTTP_REFERER a qual nos devolve desde que a página seja enviada ao script.

Código: Selecionar todos
$ref = getenv('HTTP_REFERER');

Se o conteúdo desta variável é falso, então é porque foi acessada diretamente pelo navegador, se não, é que foi acessada a partir de uma página, também haverá que comprovar que a página é a que queremos.

Código: Selecionar todos
<?php
$ref = getenv('HTTP_REFERER');
if (!$ref || $ref != '[nuestra url]') {
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<html>
<head>
<title>Blog do roxzin - Redirecionamento Ajax</title>
</head>
<body>
<h1>Blog do roxzin - Redirecionamento Ajax</h1>
<p><?php echo "Olá, Agora são ".date("H:i:s"); ?></p>
</body>
</html>
<?php
} else {
echo "Olá, agora são ".date("H:i:s");
}
?>

Neste caso mostraremos uma página quando não houver referência ou não seja o que nós esperamos.

A mesma funcionalidade pode ser utilizada por questões de acessibilidade, dependendo de um parâmetro que indica se uma chamada é Ajax ou não, ele retorna a informação ao browser ou informações são exibidas em uma página.

Código: Selecionar todos
<a href="url-ajax.php" onclick="ajax('url-ajax.php?ajax=1')">Link</a>

Caso haja problemas de acessibilidade, o link para acessar a página com a informação. Caso contrário, a função ajax () é executada, indicando que esta é uma chamada Ajax para que a informação seja retornada formatada, seja em XML, ou JSON ou como queremos.



detalhes...


roxzin
MEMBRO
MEMBRO
Mensagens: 42
Registrado em: Ter Out 14, 2008 7:35 pm
Localização: santa rosa de viterbo

Não permitir que acessem diretamente

Mensagem por web Offline » Dom Jun 14, 2009 10:22 pm

Muito bom, garante a segurança do arquivo.

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12439
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil


responder a dúvida

Voltar para Laboratório de Artigos, Tutoriais e Matérias

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante