Aller au contenu

Problème de Phishing depuis mon site


Sujets conseillés

Posté

Bonjour,

Sur mon site pro (webserviteur.com) j'avais plusieurs formulaires html traité par un petit script php qui me les envoyé par mail, pour éviter tout problème j'avais interdit les adresses mails finisant par mon ndd. Tout allez bien, le jour ou j'ai changé d'hébergeur pour ovh, plus rien n'a était j'ai était inondé de mails de retour avec des adresses expéditeurs en webserviteur.com (il y a un catch-all).

Voici le code php :

<?php
list($nom,$server) = explode("@",$mail);
if ($server=='webserviteur.com')
{
 include "MailNonEnvoye.php";
}
elseif ($mail=='')
{
 include "MailNonEnvoye.php";
}
else
{
 $headers="From: ".$mail;
 $message = stripslashes($message);
 mail('thomas.mathey_AT_gmail.com',$titre,$message,$headers);
 include "MailEnvoye.php";
}
?>

J'ai fait une erreur ? Comment le sécuriser plus, car mon compte à déjà était fermé à cause de ça ;oD

Posté

tu peux mettre un code dans le genre :

$headers="From: Formulaire <thomas.mathey_AT_gmail.com>";
$message = $mail.stripslashes($message);
mail('thomas.mathey_AT_gmail.com',$titre,$message,$headers);
include "MailEnvoye.php";

Le header ne peut plus être modifié, le mail de ton correspondant se trouve dans le message.

Posté

C'et le header qui pose problème tu crois ?

Posté

La variable $mail est un champs du formulaire je pense. Ils peuvent mettre un bcc ou un cc

j'ai trouvé ça pour sécuriser un peu plus (http://fr.php.net/mail) :

<?php
// First, make sure the form was posted from a browser.
// For basic web-forms, we don't care about anything
// other than requests from a browser:
if(!isset($_SERVER['HTTP_USER_AGENT'])){
die("Forbidden - You are not authorized to view this page");
exit;
}

// Make sure the form was indeed POST'ed:
// (requires your html form to use: action="post")
if(!$_SERVER['REQUEST_METHOD'] == "POST"){
die("Forbidden - You are not authorized to view this page");
exit;
}

// Host names from where the form is authorized
// to be posted from:
$authHosts = array("domain.com", "domain2.com", "domain3.com");

// Where have we been posted from?
$fromArray = parse_url(strtolower($_SERVER['HTTP_REFERER']));

// Test to see if the $fromArray used www to get here.
$wwwUsed = strpos($fromArray['host'], "www.");

// Make sure the form was posted from an approved host name.
if(!in_array(($wwwUsed === false ? $fromArray['host'] : substr(stristr($fromArray['host'], '.'), 1)), $authHosts)){
logBadRequest();
header("HTTP/1.0 403 Forbidden");
exit;
}

// Attempt to defend against header injections:
$badStrings = array("Content-Type:",
"MIME-Version:",
"Content-Transfer-Encoding:",
"bcc:",
"cc:");

// Loop through each POST'ed value and test if it contains
// one of the $badStrings:
foreach($_POST as $k => $v){
foreach($badStrings as $v2){
if(strpos($v, $v2) !== false){
logBadRequest();
header("HTTP/1.0 403 Forbidden");
exit;
}
}
}

// Made it past spammer test, free up some memory
// and continue rest of script:
unset($k, $v, $v2, $badStrings, $authHosts, $fromArray, $wwwUsed);
?>

Posté

Ton script est très intéressant.

Ce qui m'embête un peu, c'est de bloquer les gens qui naviguent avec un browser sans referer (cf. l'option dans Opera ou certains plugins).

Posté

Oui c'est vrai que certains ont une option permettant de cacher le referer, mais il me parraît béton sinon ce bout de code.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...