Foros del Web » Programando para Internet » PHP »

Bloquear acceder directamente a archivo php

Estas en el tema de Bloquear acceder directamente a archivo php en el foro de PHP en Foros del Web. Hola a todos, lo que busco es bastante simple, lo que quiero es que no se pueda acceder directamente a un archivo por ejemplo: entras ...
  #1 (permalink)  
Antiguo 16/07/2008, 08:30
 
Fecha de Ingreso: noviembre-2006
Ubicación: Jerez de la Fra. (Cádiz)
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 1
Bloquear acceder directamente a archivo php

Hola a todos, lo que busco es bastante simple, lo que quiero es que no se pueda acceder directamente a un archivo

por ejemplo: entras en descargas.php y que redirija o algo, sin embargo si se entra a traves de index.php ...

ej: index.php?seccion=descargas

pues que lo permita

Un saluditooo
  #2 (permalink)  
Antiguo 16/07/2008, 09:36
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Bloquear acceder directamente a archivo php

En el archivo .php que incluyes:

Código PHP:
if (!$_GET['seccion']) { die ("Acceso directo no permitido") } 
Y si lo quieres redirigir:

Código PHP:
<?php
if (!$_GET['seccion']) { ?><script>location="index.php";</script><?php 
?>
  #3 (permalink)  
Antiguo 16/07/2008, 09:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 288
Antigüedad: 17 años, 10 meses
Puntos: 4
De acuerdo Respuesta: Bloquear acceder directamente a archivo php

muy facil mi amix, una forma de trabajar es usando la variable referer $_SERVER['HTTP_REFERER'] con la cual podras saber el enlace desde donde vino la visita a una web determinada.

Haz lo siguiente:

en tu archivo descargas.php:
Código PHP:
if($_SERVER['HTTP_REFERER'] != "index.php?seccion=descargas
"
){
echo 
"No puede acceder a este pagina de forma directa <br> Acseso Denegado !";
exit;

Asi de simple ;)
  #4 (permalink)  
Antiguo 16/07/2008, 10:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 55
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Bloquear acceder directamente a archivo php

graicas a mi tambien entendi un poko aunque io ya lo abia solozionado en mi web

Salu2
  #5 (permalink)  
Antiguo 16/07/2008, 11:34
 
Fecha de Ingreso: noviembre-2006
Ubicación: Jerez de la Fra. (Cádiz)
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Bloquear acceder directamente a archivo php

Gracias por las respuestas...

Usare lo primero, lo del netserver fue lo que probe, pero no funcionaba porque lo que quiero no es que no se acceda directamente, sino viniendo de una pagina mia, como hace el hotlink...

yo lo que queria esq a ese archivo no se pueda acceder de ninguna manera directamente, solamente poder hacer un include

Un saludo y gracias a todos!
  #6 (permalink)  
Antiguo 16/07/2008, 18:19
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Bloquear acceder directamente a archivo php

Pero la primera respuesta no lo soluciona. Pueden seguir entrando por descargas.php?seccion=descargas

Lo que puedes hacer, es en el index.php, antes de llamar a los demás archivos, poner
Código PHP:
define('_INDICE_',true); 
Y luego, en descargas.php y etcétera...

Código PHP:
if (!defined('_INDICE_')) die("Patatín patatán"); 
  #7 (permalink)  
Antiguo 16/07/2008, 19:40
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
Respuesta: Bloquear acceder directamente a archivo php

facil
si en la barra de navegacion dictan pagina.com/descargas.php
introduce este codigo en la cabezera del archivo descaras

Código PHP:
if ($_SERVER['HTTP_REFERER'] == ""){
header("Location: index.php");
exit();

eso hace que si se llama directamente, redireccione a index.php

si se llama por medio de otra pagina (enlace) pueda entrar a descargas.php


peroooo, recuerda que si una web "enemiga" quiere enlazar a su gente directamente a tus descaras, te sugiero que envies una cookie desde tu index.php con un ID unico (encriptado en md5) si es poisible, ahora, cuando descargas.php lea esa cookie, y si existe, que permanezca en descargas.php

si la cookie no existe, que se dirija a index.php

asi estara aun mas seguro tu script

Última edición por MoDoRrO; 16/07/2008 a las 19:46
  #8 (permalink)  
Antiguo 16/07/2008, 21:01
 
Fecha de Ingreso: noviembre-2006
Ubicación: Jerez de la Fra. (Cádiz)
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Bloquear acceder directamente a archivo php

LoveMeNot eres un makina :D

la razon por la que quiero impedir el acceso directo al archivo no es para que no enlacen las descargas, el por el mero hecho de que si se accede directamente a el pues daria errores puesto que la conexion sql esta en el index... posibles ataques... el diseño tambien en el index... entonces por eso solo quiero que pueda ser utilizado desde index.php mediante include, da igual si me enlazan desde otras web mientras sea index.php?seccion=descargas y no descargas.php

Un saludo y gracias a todos :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.