2011-05-25 18 views
7

He cargado scripts en los servidores de los usuarios. No quiero que otros accedan a este script a través del navegador. Sin embargo, quiero que un script pueda acceder a él.Haciendo que un archivo sea accesible para los scripts pero no para los usuarios

Colocar el archivo fuera del public_html no es una opción aquí, porque realmente tiene que estar en el public_html. ¿¿¿Algunas ideas??? Gracias.

+0

¿Por qué necesita estar en public_html? – Fosco

+0

@Fosco el OP probablemente esté en algún servidor que solo tiene derechos de usuario para 'public_html' – Neal

Respuesta

15

Ponga un poco variable antes de la incluyen para que sepa donde está siendo llamado:

index.php:

$open = true; 
include 'open.php'; 

open.php:

<?php 
    if(isset($open) && $open){ 
     //do what it is supposed to do 
    } 
    else { 
     header("HTTP/1.1 403 Forbidden"); 
     exit; 
    } 
?> 
+0

Voy a votar como este, ahora que lo has publicado, creo que esto es lo que quieren decir (pero fueron un poco vagos). Similar a lo que hacen los grandes proyectos como phpBB, esto permitiría que otros scripts lo incluyan, pero no acceso directo. –

+0

+1 Solución limpia. – Fosco

+0

Hago esto todo el tiempo ... solución muy clara y efectiva –

1

Hacer un archivo accesible para los usuarios o sripts es casi sinónimo. No vas a obtener uno sin el otro. Los usuarios pueden siempre secuencias de comandos mímicas.

2

Puede hacer que la ruta sea accesible solo para clientes autenticados y proporcionar las credenciales solo a su secuencia de comandos.

Si es que se accede a través del navegador, los usuarios y los guiones son ambos "clientes" y no se puede diferenciar entre ellos (excepto el uso de trucos endebles como agente de usuario oler etc.)

4

Si los scripts que decir del lado del servidor, se puede añadir un archivo de .htaccess en la carpeta en cuestión:

deny from all 

Sin embargo, si por el guión que quiere decir el lado del cliente, a continuación, en última instancia, no se puede.

1

El archivo php incluido que desea mantener alejado de los usuarios se puede colocar fuera de su DOCUMENT_ROOT y aún se puede incluir en sus otras secuencias de comandos.

De esa manera, sus usuarios de la web nunca pueden acceder al archivo php. De hecho, esa es una buena manera segura de almacenar sus credenciales de conexión a la base de datos.

0

La mejor manera de hacerlo es colocarlo fuera del directorio public_html. No debería haber ninguna razón para que HAS esté en el directorio public_html si solo su script va a acceder a él.

Cuestiones relacionadas