Proteger fichier php

Résolu
bloodstar98748 Messages postés 4 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 26 octobre 2011 - 25 oct. 2011 à 18:52
lherblot Messages postés 18 Date d'inscription mardi 11 octobre 2011 Statut Membre Dernière intervention 17 février 2012 - 26 oct. 2011 à 14:34
Bonjour le forum

Etant débutant en php, j'aurai besoin d'un coup de main pour proteger un fichier php.

Voici le code:
$EmailTo = "monemail@fai.com";
$Subject = "nouveau message";
$Name = Trim(stripslashes($_POST['Name'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Message = Trim(stripslashes($_POST['Message'])); 
$Body = "";
$Body .= "Nom: ";
$Body .= $Name;
$Body .= "\n\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n\n";
$success = mail($EmailTo, utf8_decode($Subject), utf8_decode($Body), "From: <$Email>");


En fait c'est un formulaire en flash qui se sert de ce fichier php pour écrire et envoyer.
Tout marche parfaitement. Seulement si l'on accède directement à ce fichier php, ça envoi un email vide directement sur ma boite mail.

Alors j'ai déjà testé de mettre ce fichier dans un dossier et de mettre un htaccess, mais du coup plus personne n'a accès, ni mon fichier flash.

Donc je pensais juste à mettre un bout de code, du fait que si l'on trouve ce fichier php, ça ne ferai rien de special (voir afficher un texte : "erreur" au lieu d'envoyer un email vide.


Mais je ne sais pas comment traduire ça en php.
pouvez-vous m'aidez ?

4 réponses

lherblot Messages postés 18 Date d'inscription mardi 11 octobre 2011 Statut Membre Dernière intervention 17 février 2012 1
26 oct. 2011 à 11:43
Salut,

Tu peux, par exemple, faire envoyer à ton Flash une variable 'formFlash' à laquelle tu donne la valeur 'true'.
Ensuite, sur ton PHP tu mets, tout au début, un code du genre :
if(!isset($_POST['formFlash']) || !$_POST['formFlash']) exit();

Ca te fais donc un fichier qui ne fait rien tant que la variable 'formFlash' n'est pas transmise avec une valeur à 'true' (ou autre chose de non nul).

J'espère que c'était quelque chose comme ça que tu recherchais.

-----------------------------------------
Loïc Herblot
Créateur de sites web pour professionnels
http://www.loicherblot.fr
3
bloodstar98748 Messages postés 4 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 26 octobre 2011
26 oct. 2011 à 13:42
Bonjour Lherblot

Merci de votre réponse, cependant je n'ai pas assez de connaissance php pour vous dire si votre solution est la bonne...
Mais je vai tester ça de suite !!
0
bloodstar98748 Messages postés 4 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 26 octobre 2011
26 oct. 2011 à 13:58
Bon après cet essai concluant !!!
Un gros merci
J'ai donc rajouter à mon flash la variable à true lors de la validation du formulaire.
En fait le isset c'est comme une sorte de verouillage avec la variable qui sert de pass, sinon ça ne fait rien en sortie.

Et ça marche, j'ai aussi testé l'accès direct au fichier et ça ne fait rien en effet !!!

Encore merci
0
lherblot Messages postés 18 Date d'inscription mardi 11 octobre 2011 Statut Membre Dernière intervention 17 février 2012 1
26 oct. 2011 à 14:34
Pas de souci.
Le isset() permet de vérifier si la variable est bien déclarée afin de ne pas générer d'erreurs.
Bonne continuation.

-----------------------------------------
Loïc Herblot
Créateur de sites web pour professionnels
http://www.loicherblot.fr

Je suis ouvert aux propositions de partenariat professionnel avec d'autres développeurs web, des web designers, rédacteurs web
0
Rejoignez-nous