2010-03-04 4 views
4

comment serait) inclure un script php qui est en dehors de la racine web (serait-ce vraiment un simple ../fichier.php), b) publier des données de formulaire à un script php en dehors de la racine Web. Je suis amené à croire que c'est une pierre angulaire de la sécurité php.placer le script php en dehors de la racine du site Web

Répondre

7

A) si votre racine web est/www/myapp/public_html alors votre public_html/index.php pourrait inclure des scripts en dehors de la racine web en faisant

require '../includefolder/script.php" 

B) Vous ne pouvez pas poster des données directement aux scripts en dehors de la racine web. Le but entier de les déplacer là est qu'il n'y a pas d'accès direct à eux; tout doit leur être transmis depuis vos scripts accessibles qui sont exposés dans votre racine web.

3
  1. C'est tout. Chemins relatifs
  2. Si cela est lié à votre question précédente (vous incluez ce fichier), Superglobales alors comme $_POST sont disponibles dans les fichiers inclus sans aucun effort supplémentaire
10

y compris un script qui est en dehors de la Webroot est facile: vous allez faire de la même façon que vous faites pour un script qui est sous le Webroot:

include '../myscript.php'; 
include '../library/myscript.php'; 
include dirname(__FILE__) . '/../library/myscript.php'; 

celui que vous préférez ;-)
J'irais pour le dernier, personnellement, cependant.


Envoyer des messages à un script qui est en dehors de la Webroot est impossible: ce script ne peut pas être servi par Apache (Apache ne sert que ce qui est à l'intérieur du Webroot). Par conséquent, ce script n'est pas accessible via HTTP; ce qui signifie qu'il n'est pas accessible depuis/par le navigateur. Mais si vous postez sur un script PHP qui se trouve dans le webroot, et que ce script en contient un autre qui est en dehors du webroot, le code de ce second fichier sera exécuté comme le premier script. Ce qui signifie qu'il aura accès aux données $_POST - les données tapées dans le formulaire.

Questions connexes