Securiser mail() en php mail en masse

Fermé
fofo73 Messages postés 295 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 28 mai 2011 - 28 avril 2010 à 18:47
avion-f16 Messages postés 19243 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 avril 2024 - 29 avril 2010 à 17:59
Bonjour,
mon compte a ete suspendus suite a un envoie de spam (beaucoup de mail).Deux explications:
-soit mon compte a ete pirater (--> je ne le pense pas mon mdp est complexe 15 caractere avec majuscule miniscule chiffre)
-soit quelqu'un a utiliser ma page pour envoyer des mail en masse.(il aurait creer un page spécialement pour faire sa avec un formulaire ou le action est diriger vers ma page )
J'aimerais securiser la fonction mail()pour eviter se genre d'incident.Pouvez vous me dire comment faire ?
merci
A voir également:

5 réponses

avion-f16 Messages postés 19243 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 avril 2024 4 496
28 avril 2010 à 18:51
Ce n'est pas la fonction mail() qu'il faut sécuriser mais ton script PHP.
Tu peux par exemple vérifier si la page précédente ($_SERVER['HTTP_REFERER']) est correcte.
1
avion-f16 Messages postés 19243 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 avril 2024 4 496
Modifié par avion-f16 le 29/04/2010 à 17:59
$_SERVER['HTTP_REFERER'] contient l'url complète (de "[http://]" jusqu'aux données GET) de la source (d'où l'internaute provient).

$_SERVER['SERVER_NAME'] contient le nom d'hôte (nom de domaine complet, avec sous-domaine s'il y en a) de la page actuelle ("www.tondomaine.com", par exemple)

$_SERVER['REQUEST_URI'] contient le chemin absolu du fichier exécuté depuis le nom de domaine jusqu'aux données GET ("/index.php?page=contact" par exemple)

Donc 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] donne quelque-chose comme "https://www.hugedomains.com/domain_profile.cfm?d=tondomaine&e=com"

Et normalement, $_SERVER['HTTP_REFERER'] est normalement égal à la l'assemblage des variables précédentes.

Biensûr, la solution que je t'ai donné est fonctionnelle pour n'importe quel domaine et n'importe quel fichier (avec n'importe quelles données GET).
Tu peux raccourcir le code comme ceci :
if($_SERVER['HTTP_REFERER'] == 'http://www.tondomaine.com/index.php?page=contact')

Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
1
fofo73 Messages postés 295 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 28 mai 2011 8
28 avril 2010 à 19:23
SUPER! mais peut tu me montrer un exemple d'utilisation.
(merci de ta reponse si rapide, moi je trouve que se qui s'amuse a degommer les site des autre c'est pas marrant donc je conseille aux autres de securiser aussi)
merci avion-f16
0
avion-f16 Messages postés 19243 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 avril 2024 4 496
28 avril 2010 à 20:01
« Je conseille aux autres de securiser aussi »
Je ne pense pas qu'ils ont attendu ton conseil.

Si ton formulaire est sur la même page que le PHP de vérification :
<?php
if($_SERVER['HTTP_REFERER'] == 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']) {
    if(/* le formulaire est envoyé */) {

    } else {
        afficherFormulaire();
    }
} else {
    afficherFormulaire();
}
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fofo73 Messages postés 295 Date d'inscription vendredi 8 mai 2009 Statut Membre Dernière intervention 28 mai 2011 8
29 avril 2010 à 17:45
j'ai pas tout compris tu peut rajouter plus de commentaire merci
par exemple j'ai pas compris $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])
et les if() avec la fonction afficherformulaire()
merci avion
fofo73
0