2009-06-06 8 views

Répondre

10

Vraisemblablement, vous y accédez uniquement via une instruction include ou similaire? Votre pari le plus sûr serait de le mettre ailleurs sur votre système de fichiers, et de l'inclure à partir de là.

Tout ce qui n'est pas servi par le serveur Web ne doit pas être conservé sous la racine Web.

0

Lorsque vous travaillez avec un serveur Web Apache, je suggère de créer un fichier .htaccess et de refuser l'accès au fichier.

Ces liens devraient vous aider à configurer un fichier .htaccess de vos besoins.

http://httpd.apache.org/docs/2.2/mod/core.html#files

Exemple .htaccess:

<Files processFrom.php> 
Order allow,deny 
Deny from all 
</Files> 
2

Les réponses existantes supposent que processForm.php contient le code uniquement, et n'est pas la page spécifiée dans l'attribut "action" de votre formulaire. Dans le cas où cette hypothèse est incorrecte, je réponds en supposant que vous voulez que cette page traite directement la requête POST générée par votre formulaire, mais que vous voulez empêcher quiconque d'exécuter accidentellement ou malicieusement du code dans ce fichier.

Dans ce cas, vous ne pouvez pas masquer le fichier comme recommandé. Au lieu de cela, vous pouvez utiliser un jeton créé lorsque le formulaire est affiché, stocké dans une variable de session et soumis avec le formulaire (< input type = "hidden" .../>). Avant d'effectuer un traitement dans processForm.php, vous vérifiez que le jeton est présent et correspond à celui de la variable de session. En outre, vous devez toujours nettoyer toutes les entrées de formulaire. Rien n'empêche quelqu'un de soumettre ce qu'il veut à votre script tant qu'il est accessible sur le Web.

Questions connexes