2010-10-11 3 views
3

J'ai une page web qui contient de nombreux fichiers php et je me demandais comment puis-je empêcher les utilisateurs de voir le php inclus individuellement?PHP y compris d'autres fichiers php question

+0

vous pouvez effacer votre question? –

+0

Pouvez-vous expliquer plus s'il vous plaît? comprendre(); plusieurs pages avec accès utilisateur? –

+0

J'ai un fichier appelé includes qui contient de nombreux scripts PHP. – HELP

Répondre

6

Une façon populaire est de définir une constante dans le fichier comprenant:

define ("INCLUDE_OK", true); 

puis de vérifier dans chaque sous-include:

if (!defined("INCLUDE_OK")) die ("This file can't be executed directly"); 

Sinon, comme @mikerobi dit dans son entreprise réponse supprimée, stockez les fichiers d'inclusion dans un dossier en dehors de la racine Web.

+0

comment stockez-vous des fichiers dans un dossier en dehors de la racine Web? – HELP

+0

@blah De la même manière que vous incluez des fichiers en dehors de la racine Web. Par exemple. 'include (" ../ folder/name.php ");' –

+0

@Pekka Je voulais dire comment stocker des fichiers dans un dossier en dehors de la racine web? – HELP

0

Vous pouvez définir une variable sur la page principale et créer une vérification simple sur les pages incluses. Si la variable n'est pas définie, n'affichez pas la page. Ce n'est pas joli mais cela fonctionnerait ...

I.e.

//On the main page 
$check = true; 
include(../someFile.php); 

//someFile.php 
if($check == true){ 
    //Display your content 
} 
1

Dans votre fichier principal, faire quelque chose comme:

<?php 
    define('AAA',true); 
?> 

Et dans tous les fichiers d'inclusion écrire ce en haut de régnait dans:

<?php 
    defined('AAA') or die('Access denied.'); 
?> 

Ou, vous pouvez utiliser les fichiers .htaccess .

1

Vos fichiers php ne doivent pas faire quoi que ce soit sauf si une fonction est appelée, et vous devez vous assurer que l'extension est php, ou une autre extension compilée avec php (comme includes.php). si vous avez includes.inc par exemple, un serveur affichera simplement le code source de ce fichier, ce qui pose une faille de sécurité en premier lieu. Si vous suivez ces règles, vous n'aurez même pas à vérifier d'autres variables et autres.

+0

+1 Pour expliquer pourquoi cela ne devrait vraiment pas d'importance. –

2

Si les fichiers PHP ne sont pas supposés être appelés du tout par l'utilisateur, ils ne devraient même pas être dans la racine du document. Par exemple, si la racine de votre document est /var/www/html, je créerais un répertoire /var/www/include et les y placerais. Il est physiquement impossible pour l'utilisateur de les appeler alors, et les pages PHP que l'utilisateur devrait pouvoir peuvent simplement les référencer comme ../include/myinclude.php.

Questions connexes