Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Email injection, headers injection, sicurezza form contatti

    Stavo approfondendo l'argomento e allo scopo ho fatto alcune ricerche sul web trovando molte funzioni.
    Io filtro tutti gli input anzitutto con strip_tags() ed elimino il primo problema. Ma da come ho capito c'è molto altro...

    Vi dico ciò che ho capito.
    L'utente può inserire nella mail degli headers (si parla soprattutto di 'headers injection') e quindi il problema consisterebbe:
    1) i caratteri di ritorno a capo e ritorno carrello ('\r' e '\n');
    2) alcune stringhe: 'content-type', 'to', 'cc', 'bcc';

    Data la mia ignoranza sull'argomento e sulle espressioni regolari volevo chiedervi quali metodi adottare per filtrare gli input inviati dall'utente e vi volevo sottoporre alcune funzione filtro scopiazzate sulla rete ma che vorrei capire.

    Sul web ho trovato:

    Codice PHP:
    <?php 
    function has_no_newlines($text
        { 
        return 
    preg_match("/(%0A|%0D|\\n+|\\r+)/i"$text) == 0;
        } 
     
    function 
    has_no_emailheaders($text
        { 
        return 
    preg_match("/(%0A|%0D|\\n+|\\r+)(content-type:|to:|cc:|bcc:)/i"$text) == 0;
        } 

    ?>
    Cosa fanno questi due filtri (cosa sostituiscno??!)??
    cosa sono %0A %0D e quel + dopo a \r \n cosa significa?
    la 'i' alla fine significa che sostituisce sia in caso di maiuscole e minuscole?
    -----------------------------------
    Codice PHP:
    <?php
    function isInjected($str) {
        
    $injections = array('(\n+)',
        
    '(\r+)',
        
    '(\t+)',
        
    '(%0A+)',
        
    '(%0D+)',
        
    '(%08+)',
        
    '(%09+)'
        
    );
        
    $inject join('|'$injections);
        
    $inject "/$inject/i";
        if(
    preg_match($inject,$str)) {
            return 
    true;
        }
        else {
            return 
    false;
        }
    }
    ?>
    questa come è rispetto alla precedente?

    --------------------------------------
    Codice PHP:
    <?php
    function safe$name ) {
       return( 
    str_ireplace(array( "\r""\n""%0a""%0d""Content-Type:""bcc:","to:","cc:" ), ""$name ) );
    }
    ?>
    Come devo modificare le stringhe dell'array per sostituire str_ireplace (php version 5.0.0 o superiore) con preg_replace (con modificatore 'i')?

    Voi cosa utilizzate per filtrare gli input dei form mail? Ci sono altre cose da sapere per rendere sicuro al 100% il form contatti?

  2. #2

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.