2016-03-20 5 views
0

In dem folgenden Code das hatte ich im Internet gefunden und dass ich für meine Kontaktformular bin mit, scheint der erste Teil in Bezug auf Sicherheit:Reicht dies aus, um eine Header-Injektion zu verhindern?

if (isset($_POST['email']) && isset($_POST['name']) && isset($_POST['message']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 

    // detect & prevent header injections 
    $test = "/(content-type|bcc:|cc:|to:)/i"; 
    foreach ($_POST as $key => $val) { 
    if (preg_match($test, $val)) { 
     exit; 
    } 
    } 

diesen Code stark genug Header Injektionen/Sicherheit zu verhindern Probleme? (Ich bin nicht vertraut mit PHP)

Danke,

Voll Code:

<?php 
// Email Submit 
// Note: filter_var() requires PHP >= 5.2.0 
if (isset($_POST['email']) && isset($_POST['name']) && isset($_POST['message']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 

    // detect & prevent header injections 
    $test = "/(content-type|bcc:|cc:|to:)/i"; 
    foreach ($_POST as $key => $val) { 
    if (preg_match($test, $val)) { 
     exit; 
    } 
    } 

    //send email 
mail("[email protected]", "From page: ".$_POST['name'], $_POST['message']."\nDepuis la page: ". str_replace("http://", "", $_SERVER['HTTP_REFERER']) . "\n" . $_SERVER ['HTTP_USER_AGENT'], "From:" . $_POST['email'] . "\r\n" . "BCC: [email protected]"); 

} 
?> 

Antwort

0

Injection tritt in der Regel in Datenbanken, soweit Code Sorge ist, ist es sicher, aber mehr besserer Weg ist, zu verwenden htmlentities(), stripslashes() Funktionen für diese

Verwandte Themen