bonjour,
le livre d'or de mon site internet a été pirater.
le pirate a posté 2 messages dans mon livre d'or : (je vous les donnes telque je les recoit par mail)
le 1er :
Nom : votre site contient une faille !
Message : <DIV id=Layer1 style=\"border:1px none #000000; Z-INDEX: 1; LEFT: 0; WIDTH:
2000px; POSITION: absolute; TOP: 0; HEIGHT: 4000px; BACKGROUND-COLOR: #000000;
layer-background-color: #000000\"><h1><font color=red>TEST SECURITE</font></h1></h2><font color=green>SIMPLE TEST DE SECURITER !! NE PAS PRENDRE EN COMPTE !! A SUPPRIME RAPIDEMENT !!</font></h3>
Site internet : ceci est pour vous !
email : je viens vous dire de la corriger
ip :
Ville : afin de vous aider a ameliorer le site
et le second :
Nom : didier
Message : <DIV id=Layer1 style=\"border:1px none #000000; Z-INDEX: 1; LEFT: 0; WIDTH:
9000; POSITION: absolute; TOP: 0; HEIGHT: 40000; BACKGROUND-COLOR: #000000;
layer-background-color: #000000\"><h1><font color=red>TEST SECURITE</font></h1></h2><font color=green>SIMPLE TEST DE SECURITER !! NE PAS PRENDRE EN COMPTE !! A SUPPRIME RAPIDEMENT !!</font></h3>
Site internet :
email : didider@hormail.fr
ip :
Ville : paris
du coup plus de page livre d'or sur mon site juste une page noire avec son texte.
j'ai quand meme reussi a recuperer ma page en supprimant de ma base de données les messages mais le probleme risque de se reproduire.
pourriez vous m'aider à corriger cette faille ?
mon formulaire est simple :
et ma page de verification (validation du message) est la suivante :
Modifié par fabrice88 (25 Jul 2009 - 19:29)
le livre d'or de mon site internet a été pirater.
le pirate a posté 2 messages dans mon livre d'or : (je vous les donnes telque je les recoit par mail)
le 1er :
Nom : votre site contient une faille !
Message : <DIV id=Layer1 style=\"border:1px none #000000; Z-INDEX: 1; LEFT: 0; WIDTH:
2000px; POSITION: absolute; TOP: 0; HEIGHT: 4000px; BACKGROUND-COLOR: #000000;
layer-background-color: #000000\"><h1><font color=red>TEST SECURITE</font></h1></h2><font color=green>SIMPLE TEST DE SECURITER !! NE PAS PRENDRE EN COMPTE !! A SUPPRIME RAPIDEMENT !!</font></h3>
Site internet : ceci est pour vous !
email : je viens vous dire de la corriger
ip :
Ville : afin de vous aider a ameliorer le site
et le second :
Nom : didier
Message : <DIV id=Layer1 style=\"border:1px none #000000; Z-INDEX: 1; LEFT: 0; WIDTH:
9000; POSITION: absolute; TOP: 0; HEIGHT: 40000; BACKGROUND-COLOR: #000000;
layer-background-color: #000000\"><h1><font color=red>TEST SECURITE</font></h1></h2><font color=green>SIMPLE TEST DE SECURITER !! NE PAS PRENDRE EN COMPTE !! A SUPPRIME RAPIDEMENT !!</font></h3>
Site internet :
email : didider@hormail.fr
ip :
Ville : paris
du coup plus de page livre d'or sur mon site juste une page noire avec son texte.
j'ai quand meme reussi a recuperer ma page en supprimant de ma base de données les messages mais le probleme risque de se reproduire.
pourriez vous m'aider à corriger cette faille ?
mon formulaire est simple :
<form action="valide-livre.php" method="post" enctype="multipart/form-data">
<table border="0" cellspacing="10" cellpadding="0">
<tr>
<td><div align="right">Votre adresse Ip</div></td>
<td><?php
// on relève l'adresse IP du client comme dit dans le cours
$IPClient = $_SERVER[REMOTE_ADDR] ;
// affichage de l'adresse IP contenu dans la variable $IPClient
print ("$IPClient") ;
?>
</td>
</tr>
<tr>
<td><div align="right">* Nom</div></td>
<td><input class="text" type="text" name="nom" /></td>
</tr>
<tr>
<td><div align="right">Mail</div></td>
<td><input class="text" type="text" name="email" /></td>
</tr>
<tr>
<td><div align="right">Site</div></td>
<td><input class="text" type="text" name="url" /></td>
</tr>
<tr>
<td><div align="right">Ville</div></td>
<td><input class="text" name="ville" type="text" id="ville" /></td>
</tr>
<tr>
<td><div align="right">Note pour le site </div></td>
<td><label>
<select name="note" id="note" >
<option value="10">10</option>
<option value="9">9</option>
<option value="8">8</option>
<option value="7">7</option>
<option value="6">6</option>
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
</select>
</label></td>
</tr>
<tr>
<td><div align="right"> * Votre message </div></td>
<td><textarea onblur="calculeLongueur();" onfocus="calculeLongueur();" onkeydown="calculeLongueur();" onkeyup="calculeLongueur();" name="message" id="message" maxlength="500"></textarea>
<div id="indic">500 caractères disponibles</div> </td>
</tr>
<tr>
<td><p align="right">Code de vérification</p>
<p align="right"> <img src="imagesecu.php" alt="image de protection" /></p></td>
<td><label for="verif">Recopiez le code de vérification </label><br />
<input class="text" type="text" name="verif" size="10" maxlength="6" /></td>
</tr>
<tr>
<td> </td>
<td><input name="submit2" type="submit" class="bouton" value="Valider" /></td>
</tr>
</table>
<div align="right"> Les champs marqués d'une étoile (*) sont obligatoires </div>
</form>
et ma page de verification (validation du message) est la suivante :
<?PHP
// verification du code antispam
// On initialise la session
session_start();
/* on vérifie que la code est toujours mémorisé en session et qu'il fait 6 caractères */
if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");
// on vérifie que la code entré est valide
if($_SESSION['code'] != $_POST['verif'])
{
print("<center>Le '<b>code de verification</b>' est faut !</center>");
echo '<a href="javascript:history.back();">Retour</a>';
exit();
}
// verification des champs nom et message
$nom = $_POST['nom'];
$message = $_POST['message'];
if(empty($nom))
{
print("<center>Le '<b>Nom</b>' est vide !</center>");
echo '<a href="javascript:history.back();">Retour</a>';
exit();
}
if(empty($message))
{
print("<center>Le '<b>Message</b>' est vide !</center>");
echo '<a href="javascript:history.back();">Retour</a>';
exit();
}
else
{
$msg .= "Nom :\t$nom\n";
$msg .= "Message :\t$message\n";
$msg .= "Site internet :\t$url\n";
$msg .= "email :\t$email\n";
$msg .= "ip :\t$ip\n";
$msg .= "Ville :\t$ville\n";
// récuperation de l'adresse IP
$ip = $REMOTE_ADDR;
// Envoi des infos vers Mysql
$sql = "INSERT INTO livreor(id, nom, email, url, ville, note, message, date, ip)
VALUES('','$nom','$email','$url','$ville','$note','$message',NOW(),'$ip')";
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
mail('monadresse@wanadoo.fr', 'Nouveau message sur le livre dor', $msg , 'From: expediteur@monsite.fr');
echo 'Merci, votre message dans le livre dor a bien été ajouter';
mysql_close();
}
// on détruit les variables de session, désormais inutiles pour le verif antispam
session_unset();
session_destroy();
?>
<?php echo '<a href="javascript:history.back();">Retour</a>'; ?>
Modifié par fabrice88 (25 Jul 2009 - 19:29)