OVH Cloud OVH Cloud

securite

5 réponses
Avatar
Jean-Pierre
Bonjour,

J'ai un formulaire "Contact" qui appelle un fichier _mail/form2mail.php pour
envoyer son contenu.
Comment puis-je faire pour être certain que personne ne puisse appeler
directement ce fichier sans passer par mon fichier Contact.

Même question lorsque j'ai plusieurs formulaire qui appellent le même
fichier php.

JP

5 réponses

Avatar
O.L.
"Jean-Pierre" wrote in
news:cfff05$5ev$ :

Bonjour,

J'ai un formulaire "Contact" qui appelle un fichier
_mail/form2mail.php pour envoyer son contenu.
Comment puis-je faire pour être certain que personne ne puisse appeler
directement ce fichier sans passer par mon fichier Contact.

Même question lorsque j'ai plusieurs formulaire qui appellent le même
fichier php.

JP


Tu peux regarder au niveau de la requête que fait le navigateur à Apache
: le champ "Referer" contient l'adresse de la page d'où vient
l'utilisateur, du style http://monsite.fr/MonFormulaire.htm

$ok = 0;
$adresses_autorisees = new Array("http://monsite.fr/MonFormulaire.htm",
"http://monsite.fr/MonDeuxiemeFormulaire.htm");
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
if($header == "Referer" && array_search($value,
$adresses_autorisees) $ok = 1;
}
if(!$ok) die("Vous ne venez pas du bon endroit !");


Mais ce n'est absolument pas sûr à 100%, si quelqu'un veut accéder au
script PHP lui même, rien ne l'empêche d'envoyer sa propre requête au
serveur web, avec le champ Referer qui convient ...

Bye
O.L.

Avatar
Jeremy Cardon
protege ta page form2mail.php
en t'assurant que le visiteur arrive bien de ton formulaire
cette methode gère les erreus "involontaires" des utilisateurs.....

genre

au niveau du formulaire rajoute un <input type"hiden"
name="ilaetesurleformulaire" value="1">

et dans la page form2mails
tu fais

if(isset($_POST['ilaetesurleformulaire'] &&
$_POST['ilaetesurleformulaire']==1)
{

ton script

}
else
{
echo"Erreur";
}

--
Jeremy Cardon

"Jean-Pierre" a écrit dans le message de
news:cfff05$5ev$
Bonjour,

J'ai un formulaire "Contact" qui appelle un fichier _mail/form2mail.php
pour

envoyer son contenu.
Comment puis-je faire pour être certain que personne ne puisse appeler
directement ce fichier sans passer par mon fichier Contact.

Même question lorsque j'ai plusieurs formulaire qui appellent le même
fichier php.

JP


Avatar
Jeremy Cardon
mieux encore,
a la place de

echo"erreur"
tu peux mettre un include vers la saisie formulaire

--
Jeremy
"Jean-Pierre" a écrit dans le message de
news:cfff05$5ev$
Bonjour,

J'ai un formulaire "Contact" qui appelle un fichier _mail/form2mail.php
pour

envoyer son contenu.
Comment puis-je faire pour être certain que personne ne puisse appeler
directement ce fichier sans passer par mon fichier Contact.

Même question lorsque j'ai plusieurs formulaire qui appellent le même
fichier php.

JP


Avatar
Frederic BISSON
Hello !

J'ai un formulaire "Contact" qui appelle un fichier _mail/form2mail.php
pour envoyer son contenu.
Comment puis-je faire pour être certain que personne ne puisse appeler
directement ce fichier sans passer par mon fichier Contact.
Ne plus utiliser cette technique, somme toute primaire, qui consiste à

taper du code dans un fichier .php et à l'inclure dans un autre. Cette
méthode a beaucoup trop d'inconvénients par rapport aux avantages
qu'elle procure.

Je te propose donc de conserver ton fichier form2mail.php mais de
transformer le code qui s'y trouve en une fonction que tu appelleras
depuis les autres scripts. Tu pourras ainsi garantir que le script externe
que tu utilises ne vient pas perturber le fonctionnement du script
appelant.

Si quelqu'un essaie de lancer form2mail.php ainsi modifié,
l'interpréteur PHP chargera le fichier en mémoire, définira la
fonction, mais ressortira immédiatement puisqu'il n'y aura aucun code à
exécuter. Il s'agit donc d'une méthode parfaitement fiable et qui évite
de devoir mettre en place un système de droits par htaccess ou autre.

Même question lorsque j'ai plusieurs formulaire qui appellent le même
fichier php.
Même réponse ;-)


@+

Frédéric

Avatar
Jean-Pierre
Merci à tous pour otre aide, je vais étudier tout ça.
JP
"Jean-Pierre" a écrit dans le message de news:
cfff05$5ev$
Bonjour,

J'ai un formulaire "Contact" qui appelle un fichier _mail/form2mail.php
pour

envoyer son contenu.
Comment puis-je faire pour être certain que personne ne puisse appeler
directement ce fichier sans passer par mon fichier Contact.

Même question lorsque j'ai plusieurs formulaire qui appellent le même
fichier php.

JP