Ir para conteúdo
Fórum Script Brasil
  • 0

Bloquear acesso direto


AngelinDark

Pergunta

Yo, tudo bem galera, eu to criando o meu site mas estou tendo o seguinte problema todas as paginas serão acessadas através do metodo get e por esse motivo gostaria de bloquear o acesso direto a pagina.

Ficando dessa forma:

O usuario só podera vizualisar a pagina se acessar por:

http://localhost/index.php?page=animes/ikkitousen

e quando tentar acessar por:

http://localhost/animes/ikkitousen.php

será redirecionado para a pagina correta usando o metodo get.

alguém saberia como fazer isso?

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Ou simplesmente define uma variável ou constante única na index, ai nas outras você só usa o isset para verificar se existe, se existir é porque o cara está acessando corretamente, caso contrário está acessando direto.

Link para o comentário
Compartilhar em outros sites

  • 0
Ou simplesmente define uma variável ou constante única na index, ai nas outras você só usa o isset para verificar se existe, se existir é porque o cara está acessando corretamente, caso contrário está acessando direto.

Opa tudo bem eu tentei o metódo do post antes do seu e nada.

E estou usando o isset o script que uso pra chamar as paginas dentro da index é o seguinte

<?php $page = isset($_GET["page"]) ? $_GET["page"] : false;

if (($page))

{

include ("$page.php");

} else

{

include ("pagein.php");

}

?>

e estou chamando as paginas da seguinte forma index.php?page=contato no entanto a pagina contato.php ainda pode ser vista se acessada diretamente por localhost/contato.php

Como faço para isso não acontecer mais?

Link para o comentário
Compartilhar em outros sites

  • 0

É, você leu mas não entendeu, enfim, deixa eu colocar um exemplo funcional...

<?php
/*
A VARIÁVEL ABAIXO É A QUE VAI FAZER A MÁGICA DE PERMITIR O ACESSO...
*/
$variavel_qualquer = 'ok';

 $page = isset($_GET["page"]) ? $_GET["page"] : false;
if (($page))
{
include ("$page.php");
} else
{
include ("pagein.php");
}
?>
E agora como proteger? SIMPLES: em todas as outras páginas você coloca isso no topo:
if(!isset($variavel_qualquer)){
    exit;
}

Se o $variavel_qualquer não estiver setada (e ela só será setada onde o outro código existir), o script é encerrado (dá pra trocar o exit por um header, etc...)

Link para o comentário
Compartilhar em outros sites

  • 0

Oi!

Estou literalmente desenterrando este tópico, mas é para não criar nada repetido.

Minha dúvida é parecida, preciso bloquar o acesso direto a uma página, mas não quero bloqueá-la se ela for acessada por um iframe. Será que é possível?

Exemplo:

Tenha uma página com um iframe, e esta é a forma correta de acessar a outra página:

http://www.musebr.com/v3/multimidia/

<iframe id="multimidia" style="border:0;" src ="http://www.musebr.com/videos/" width="100%" height="2000"></iframe>

Mas se a pessoa acessar diretamente a página http://www.musebr.com/videos/ ela irá navegar através da página, mas de forma incorreta. E é isto que eu quero bloquear, para que consigam na verdade visualizar esta página somente através do iframe acima, colocado na outra página.

Poderiam dar uma força?

Link para o comentário
Compartilhar em outros sites

  • 0

$paginacerta = 'http://www.musebr.com/v3/multimidia/';

$paginacerta2 = 'http://www.musebr.com/v3/multimidia-administracao/';

if ( (window.Location != $paginacerta) && (window.Location != $paginacerta2) ) { header( 'Location: http://www.musebr.com/v3/multimidia/' ) ; }

$paginacerta = 'http://www.musebr.com/v3/multimidia/';

$paginacerta2 = 'http://www.musebr.com/v3/multimidia-administracao/';

if ( (header.Location != $paginacerta) && (header.Location != $paginacerta2) ) { header( 'Location: http://www.musebr.com/v3/multimidia/' ) ; }

$paginacerta = 'http://www.musebr.com/v3/multimidia/';

$paginacerta2 = 'http://www.musebr.com/v3/multimidia-administracao/';

if ( (parent.Location != $paginacerta) && (parent.Location != $paginacerta2) ) { header( 'Location: http://www.musebr.com/v3/multimidia/' ) ; }

já tentei os 3 modelos acima mas fica um loop infinito, pois depois do redirecionamento, ele continua redirecionando....

Link para o comentário
Compartilhar em outros sites

  • 0

também estou tentando com javascript mas não consigo

<script type="text/javascript">

var paginacerta = "http://www.musebr.com/v3/multimidia/";

var paginacerta2 = "http://www.musebr.com/v3/multimidia-administracao/";

if (document.getelementbyid("multimidia") == false) { window.location = paginacerta ;}

</script>

Link para o comentário
Compartilhar em outros sites

  • 0

Galera, precisei desenterrar esse post.

Estou com um sistema em desenvolvimento mas não estou conseguindo bloquear os acessos via url.

Meu código da referida página onde preciso que seja bloqueado o acesso direto é essa:

index.php

<?php
require_once ('php/validasessao.php');
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sistema DeathFile</title>
<!--<script src="includes/ice/ice.js" type="text/javascript"></script>-->

</head>



<body background="img/fundo.jpg" width="100%">

<div id="geral" width="50%">

<div id="cabecalho">
<table align="center" width="87%" height="112">
<tr>
<td width="18%"><img src="img/logo2.png" width="85" height="87"/>

<td width="36%" height="106" align="center"><form action="php/pesquisar.php" method="POST">
<input type="text" name="buscaFile" value="" />
<input type="submit" name="btnbuscar" value="Pesquisar" />
</form></td>

<td width="22%" height="106"><div align="justify">

        <font color="#FFFFFF"><b><? echo $_SESSION['idlogin']; ?></b></font>

</td>


<td width="23%"><a href="php/logout.php"><input type="button" name="logout" value="Logout"></a></td>
<td width="1%"> </td>

</tr>

</table>
</div>


<div id="central">
<table align="center" width="90%" height="183">

<tr>
<td width="21%" height="103">

    <div id="tree" class="tree" width="110">
    <p>
<form action="">
     <input type="submit" value="Ano" name="ano" />
     </p>
    <p>
     <input type="submit" value="Turma" name="turma" />
     </p>
    <p>
     <input type="submit" value="Documento" name="doc" />
     </p>
</form>

    </div>

        <p><br />
        </p>
        <p><br />
         </p>
            
        <!-- #########DIV PARA UPLOAD DE ARQUIVOS. ESTÁ OK! ####### -->    
        
        <div id="send" class="sendFile" width="300">
                <form action="./php/upload.php" enctype="multipart/form-data" method="POST">
    Nome para o arquivo: <input type="text" name="nome_file">
<br />
<input name="localFile" size="20" type="file" />

            <input type="submit" value="Enviar" name="sendFile" />
                    </form>
                 </div>
        <!-- ############################################################## -->
        
</td>
<td width="79%" valign="top">

<div id="topmenu">
    <font color="#FFFFFF"><strong><table border="2" bgcolor="#666666" width="85%" align="tip">
        <tr>
        <td width="10%">ID</td>
                    <td width="61%">NOME</td>
    <td width="29%">TIPO</td>
    </tr>
<tr>
    <td height="200" colspan="7" rowspan="7" bgcolor="#CCCCCC"></td>
</tr>
<tr>



</table>

</div>

<div id="botaoacao">

<table width="1051" align="left">
<tr>
    <td width="288" height="29"><!--<a href="php/create.php">-->

            <input type="submit" id="criarPasta" name="criarPasta" value="Criar Pasta" onClick="window.open('php/criapasta.php');" />
                
<input type="button" id="imprimir" name="impressao" value="Imprimir" onClick="javascript('window.print()');"/>

</td>
</tr>
</table>

</div>
<p><br />
<br />

<div id="rodape">
</p>
</body>
</html>

validasessao.php

<?
$requi = $_SERVER["HTTP_REFERER"];
$requi= strtolower("/$requi/"); //
$server = $_SERVER['SERVER_NAME'];
$server= strtolower("/$server/");
if(preg_match($server, $requi) == 0){
header("Location: start.php");
die();
}
?>

Porém essa versão bloqueia até de mais, porque por mais que eu chame a página a partir da start.php (que é o form inicial para login) que por sua vez chama o script login.php para validar o user e pass, sempre me devolve pra tela inicial do sistema.

Outras formas que tentei do valida foram:

<?
if(basename($_SERVER["PHP_SELF"])==basename(__FILE__) ){
exit("<script>alert('não permitido')</script>\n
<script>window.location=('start.php')</script>");
}
?>

e essa

<?
if (basename($_SERVER['SCRIPT_NAME']) == basename(__FILE__)) {
    echo "usuário sem permissão!";
die();
}
?>

Mas nenhuma delas me bloqueia o quando digito o caminho http://localhost/index.php.

Se alguém tiver uma luz para a razão pela qual o sistema não bloqueia, me avise... preciso com urgência.

Obrigado!

:D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...