IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Hack de mon champ email [FAQ]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [Mail] Hack de mon champ email
    Bonjour à tous,

    Je suis sur une version OS Commerce CSS.

    Depuis quelques jours, un spammeur s'amuse à insérer du code via le champ email de ma newsletter.

    Je retrouve dans ma DB des "emails" du type : of content-type: multipart/alternative; boundary=56763a9e55bef3

    Je regarde mon fichier newsletters_subscirbe.php et je vois qu'il n'y a pas de contrôle de l'email inséré. Le code se trouve ci-dessous.

    N'étant pas développeur, j'aurais voulu savoir comment sécuriser le code ci-dessous pour empêcher ce type d'attaque.

    Grand merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    require('includes/application_top.php');
    require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_NEWSLETTERS);
     
    $subscribers_info = tep_db_query("select subscribers_id from " . TABLE_SUBSCRIBERS . " where subscribers_email_address = '" . $HTTP_POST_VARS['Email'] . "' ");
    $date_now = date('Ymd');
     
    if (!tep_db_num_rows($subscribers_info)) {
    $gender = '' ;
    tep_db_query("insert into " . TABLE_SUBSCRIBERS . " (subscribers_email_address, subscribers_lastname, subscribers_gender,subscribers_firstname,language, subscribers_email_type, date_account_created, customers_newsletter, subscribers_blacklist, hardiness_zone, status_sent1, source_import) values ('" . strtolower($HTTP_POST_VARS['Email']) . "', '" . ucwords(strtolower($HTTP_POST_VARS['lastname'])) . "', '" . ucwords(strtolower($HTTP_POST_VARS['gender'])) . "','" . ucwords(strtolower($HTTP_POST_VARS['firstname'])) . "', '" . $HTTP_POST_VARS['language'] . "', '" . $HTTP_POST_VARS['email_type'] . "', now() , '1', '0', '" . $domain4 . "', '1', 'subscribe_newsletter')");
    } else {
    tep_db_query("update " . TABLE_SUBSCRIBERS . " set customers_newsletter = '" . '1' . "', subscribers_email_type = '" . $HTTP_POST_VARS['email_type'] . "' where subscribers_email_address = '" . $HTTP_POST_VARS['Email'] . "' ");
    }

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    tu peux faire une fonction en php qui utilise les expressions régulière pour tester la validité de ton champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function verifmail($email)
        {
            $masque_mail = "^[a-zA-Z0-9\.]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$";
            if (ereg($masque_mail,$email))
                return $email;
            else return 0;
        }

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    OK merci.

    N'étant pas très calé, peux-tu m'expliquer où je dois intégrer cela dans mon code ci-dessus ?

    Merci

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    et bienvenue sur les forums de developpez.com

    Voici une explication de ce qui se passe ainsi que les méthodes pour te protéger :
    http://www.phpsecure.info/v2/article...dersInject.php

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    OK. C'est exactement cela

    Mais comment modifier concrètement mon code pour corriger cette faille

    Merci pour votre aide

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    Tu rajoutes cette fonction dans ta page et avant de faire une insertion ou une MAJ tu fais un teste. Si ça te retourne 0 tu affiches une page d'erreur sinon tu effectues les modifications en base de données

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par illegalsene
    Tu rajoutes cette fonction dans ta page et avant de faire une insertion ou une MAJ tu fais un teste. Si ça te retourne 0 tu affiches une page d'erreur sinon tu effectues les modifications en base de données
    Je pense pas que ça l'aide vraiment >_<

Discussions similaires

  1. adresse mail de mon champs mail dans outlook
    Par Stéph utilisateur d'acces dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/06/2011, 16h42
  2. Réponses: 2
    Dernier message: 20/04/2009, 13h25
  3. [Mail] Gmail prend mon email pour un spam
    Par tom42 dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2008, 20h23
  4. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26
  5. Réponses: 3
    Dernier message: 20/09/2005, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo