Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: email injection

  1. #1

    email injection

    Salve a tutti!
    solitamente uso questo script per inviare la pagina ad un amico

    Codice PHP:
    if($_POST['mittente']){

        
    $mail_header="From: $mail mittente\n";
        
    $mail_header .= "Content-type: text/html; charset=us-ascii\r\n";
        
    $mail_header .= "Content-transfer-encoding: 8bit\r\n\r\n";
        
    $oggetto="Una segnalazione per te";
        
    $messaggio.="
        Ciao, 

        
    $mittente ti segnala un articolo interessante 

        <a href=\"
    $url\" target=\"_blank\">clicca qui per vederlo</a>


        I suoi commenti:
    $commento";
        
    mail($destinantario$oggetto $messaggio$mail_header)."\n";

    Ho un problema, direi grave...l'amministratore del server mi dice che ho un traffico anomalo di mail sul server APACHE.. sembra che alcuni spammer utilizzino questi script per inviare anche le loro mail!
    Ho inserito in ogni form anche il captcha ma nn ho visto grandi migliorie...

    cosa mi consigliate??

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    è successo anche a me, e mi avevano bloccato il sito...


    il mio file si chiamava sendmail.php, e probabile che gli spammatori cerchino file con questo nome per inviare mail in massa..
    io ho risolto cambiando nome al file, e se non ti funzionano i captcha...

  3. #3
    Ma hai controllato che l'impostazione delle "register_globals" del file di configurazione di php si disattivata, quindi su "off"?

    Se non l'hai ancora fatto ti consiglio di farlo, perchè chiunque potrebbe immettere una stringa del genere:
    Se poi non puoi disattivare tale impostazione ti consiglio di passare i dati esclusivamente tramite POST, e rifiutare ogni tentativo di passare dati mediante GET, inserendo questo codice:

    es:
    Codice PHP:
    if(!empty($_GET))
    //Caso in qui ci siano dati nell'array "$_GET".
    print "Spiacente non puoi inviare dati mediante GET";
    exit;
    //oppure lo svuoti
    unset($_GET);
    else
    //Caso che il get sia vuoto
    ...tuo script.... 
    Ciao
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  4. #4
    Grazie delle risposte!
    ho fatto una serie di modifiche tra ieri ed oggi per vedere se la situazione cambiava.. ma niente!
    Vi spiego brevemente cos'ho fatto...

    1) inserito il codice CAPTCHA
    2) controllo come suggerito delle variabili tramite GET

    Codice PHP:
    session_start();
    // controllo $_GET
    if(!empty($_GET)){ unset($_GET); }

    // controllo captcha
    $number $_POST['Codice'];
    if(
    md5($number) == $_SESSION['image_random_value']){

    $mail_header="From: [email]pippo@pippo.it[/email]\n";
    $mail_header.="Reply-to: [email]pippo@pippo.it[/email]\n";
    $messaggio="testo del messaggio";
    $oggetto="Prova di invio";
    mail("$destinatario"$oggetto $messaggio$mail_header)."\n";
            
                    
    header("Location:index.php?msg=ok"); 
    }else{
            
    header("Location:index.php?msg=error"); 


    oggi mi è arrivata una mail così:
    Codice PHP:
    From: [email]pippo@pippo.it[/email]
    Reply-To: [email]pippo@pippo.it[/email]
    To"sarcasm6909@antiquariatoceramiche.com  Content-Transfer-Encoding"7bit.Content-Type:text/plain.Subject:Experts.expect.this.issue.to.double.in.value.before.the.weekend.bcc:gags46hac@yahoo.com,        [email]mes110@cox.net[/email], [email]chnkev04@yahoo.com[/email], [email]christine028@webtv.net[/email],        [email]whood@bigcenter.com[/email], [email]vlynch@cflh.org[/email], [email]blt@stx.rr.com[/email],        [email]john_hoogerhyde@yahoo.com[/email], [email]anuknowthis@juno.com[/email], [email]mamajerri2@nc.rr.com[/email],        [email]terryairhart@yahoo.com[/email], [email]lighttreader@yahoo.com[/email], [email]rivera1225@hotmail.com[/email],        [email]m87240@netzero.net[/email], [email]whitesparks@sbcglobal.com[/email], [email]kmnehl@yahoo.com[/email],        [email]ihoffert@yahoo.com[/email], [email]ctatum@kw.com[/email], [email]kyliestribe@bigpond.com[/email],        [email]lbonilla@pacerglobal.com[/email], [email]jdgilbert72@hotmail.com[/email], [email]sam1288@address.com[/email],        [email]aagvirgo78@yahoo.com[/email], [email]bengolea@bellsouth.net[/email], [email]hollyt@sturgeonins.com[/email],        [email]b_aramon@yahoo.com[/email], [email]coachbrad@zbrd.com[/email], [email]meemarpar@earthlink.net[/email],        hphillips@4ù 
    mmmm che dite??

  5. #5
    perchè non controlli semplicemente la validità dell'email inserita? non mi sembra che in una email saranno mai contenute stringhe del genere "http://", "?", "="

    Fai un check del tipo
    Codice PHP:
    $pattern "^([a-zA-Z0-9\._-]{3,})(@{1}[a-zA-Z0-9\._-]{3,})(\.{1}[a-zA-Z]{2,4})$";
    if (
    eregi($pattern,$email)) {
        
    //invia email
    } else {
        
    //email non valida


  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ma non puoi fare un controllo tramite le variabili di sessione ?

    Ad esempio quando ti colleghi al tuo sito con la procedura di login ti crei anche una variabile di sessione. E fai in modo di poter mandare una mail solo se quella variabile esiste e ha il valore da te impostato.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Originariamente inviato da badaze
    Ma non puoi fare un controllo tramite le variabili di sessione ?

    Ad esempio quando ti colleghi al tuo sito con la procedura di login ti crei anche una variabile di sessione. E fai in modo di poter mandare una mail solo se quella variabile esiste e ha il valore da te impostato.
    Concordo al 101%.

    [.:: JaguarXF ::.]
    __________________

  8. #8
    lo so ragazzi ma non so' se avete visto nel mio script.. la variabile attualmente cè già
    con il captcha


    Codice PHP:
    if(md5($number) == $_SESSION['image_random_value']){ 
    ma a vedere dai risultati sembra nn basti.
    Anche perchè avrei più di 200 siti da sistemare in ogni form...

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da scalcodesign
    lo so ragazzi ma non so' se avete visto nel mio script.. la variabile attualmente cè già
    con il captcha


    Codice PHP:
    if(md5($number) == $_SESSION['image_random_value']){ 
    ma a vedere dai risultati sembra nn basti.
    Anche perchè avrei più di 200 siti da sistemare in ogni form...
    Non pensavo al CAPTCHA ( fino a pochi minuti fa non sapevo cosa fosse anche se mi era già successo nel passato usarlo ). Come fai per mandare le mail ? Sei collegato in un'area protetta ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    no, è un semplice form di contatto accessibile a tutti.
    Il classico "Richiesta informazioni" per esempio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.