Livre d'or hacké ??

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Lebleu
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: Sam Déc 09, 2006 20:14

Livre d'or hacké ??

Message le Jeu Jan 18, 2007 12:07

Salut à tous,

Voilà, je crois que j'ai un gros problème avec le livre d'or installé sur mon site ... car depuis hier j'ai reçu deux messsages de ce genre :

Code: Tout sélectionner
Nom : Bf0QahQrB5
E-mail : dVXDy[at]L2r0m9B.com
Http://www.seun.ru/criea/cialis-price.html cialis price  http://www.seun.ru/criea/viagra-alternative.html viagra alternative  http://www.seun.ru/criea/online-phentermine.html online phentermine  http://www.seun.ru/criea/generic-cialis.html generic cialis  http://www.seun.ru/criea/viagra-purchase.html viagra purchase  http://www.seun.ru/criea/cialis-order.html cialis order


Le premier me disait même "Very nice site ! Thanks you very much !!" S'fout d'ma gueule en + :twisted: :twisted:

Je commence seulement à apprendre le php et mon script est, je crois, assez rudimentaire. Que puis-je faire comme tests pour éviter ce genre de choses ? Voyez-vous une autre faille qui permettrait de causer des dégâts + importants ?


Voici mon code (la connexion à la DB se fait via l'include) :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<?php
include "conf.php";

if(isset($_POST['posted']))
{
if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
{

$pseudo=trim(ucfirst(addslashes($_POST['pseudo'])));
$email=trim(addslashes($_POST['email']));
$message=trim(ucfirst(addslashes($_POST['message'])));

$requete="INSERT INTO guestbook (pseudo, email, message, date) VALUES ('$pseudo','$email','$message','$date')";

$query=mysql_query($requete) OR die ("Impossible de prendre note de votre message<br>".mysql_error());

echo '<script language="JavaScript">;';
echo 'alert ("Merci pour votre message !");';
echo '</script>;';
}
else
{
echo ' <script language="JavaScript">;';
echo 'alert("Remplissez chaque champ svp ! Merci.");';
echo 'javascript:history.back(1);';
echo '</script>;';
}
}
?>

<head>

<title>Le livre d'or Karpeace</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" content="livre d'or,guestbook,karpeace,carp,carpe,carpes,poisson,poissons,message,mail" />
<meta name="description" content="Pour laisser des encouragements, insultes ou autres : le livre d'or" />
<meta name="author" content="KnockedMaster" />
<meta name="generator" content="Notepad" />
<meta name="robots" content="index,follow" />
<meta name="expires" content="never" />
<meta name="rating" content="General" />
<meta name="distribution" content="Global" />
<meta name="audience" content="all" />

<link href="../style.css" type="text/css" rel="stylesheet" />
<link href="../style_menu_ver.css" type="text/css" rel="stylesheet" />
<link rel="alternate" title="Test rss" type="application/rss+xml" href="http://www.karpeace.com/news.xml" />
<link rel="shortcut icon" href="http://www.karpeace.com/img/icones/favicon.ico" />

<script type="text/javascript" src="../menu.js"></script>

</head>

<body>

<table id="table_smileys" border="1" rules="none" summary="Ce tableau pr&eacute;sente une liste de smileys qui peuvent &ecirc;tre ins&eacute;r&eacute;s dans les messages">
<tr>
<td width="116" height="59" align="center"><img src="../img/smileys/30.gif" width="57" height="33" alt="Smiley" /> <br/> </td>
<td width="123" align="center"><img src="../img/smileys/2.gif" width="46" height="26" alt="Smiley" /> <br /> </td>
<td width="72" align="center"><img src="../img/smileys/27.gif" width="60" height="29" alt="Smiley" /> <br /> </td>
<td width="72" align="center"><img src="../img/smileys/6.gif" width="65" height="28" alt="Smiley" /> <br /> </td>

</tr>
<tr>
<td align="center">:'A </td>
<td align="center">:'B</td>
<td align="center">:'C</td>
<td align="center">:'D</td>
</tr>
<tr>
<td height="54" align="center"><img src="../img/smileys/28.gif" width="26" height="25" alt="Smiley" /> <br /> </td>
<td align="center"><img src="../img/smileys/21.gif" width="38" height="29" alt="Smiley" /> <br /> </td>
<td align="center"><img src="../img/smileys/25.gif" width="40" height="26" alt="Smiley" /> <br /> </td>
<td align="center"><img src="../img/smileys/32.gif" width="24" height="26" alt="Smiley" /> <br /> </td>
</tr>
<tr>
<td align="center">:'E</td>
<td align="center">:'F</td>
<td align="center">:'G </td>
<td align="center">:'H</td>
</tr>

<tr>
<td width="105" align="center"><img src="../img/smileys/13.gif" width="80" height="42" alt="Smiley" /> <br /> </td>
<td align="center"><img src="../img/smileys/29.gif" width="92" height="31" alt="Smiley" /> <br /> </td>
<td align="center"><img src="../img/smileys/36.gif" width="86" height="29" alt="Smiley" /> <br /> </td>
<td align="center"><img src="../img/smileys/45.gif" width="28" height="26" alt="Smiley" /> <br /> </td>
</tr>
<tr>
<td align="center">:'I </td>
<td align="center">:'J</td>
<td align="center">:'K</td>
<td align="center">:'L</td>
</tr>
</table>

<img id="livre-or" src="../img/gifs_animes/livre-or.gif" alt="Gif anim&eacute; livre d&prime;or" title="Laissez-nous un petit mot !" />

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><input type="hidden" name="posted" value="1" />
<fieldset>
<legend>Une p&prime;tite bafouille ...</legend>

<p><label for="pseudo">Pseudo : </label> <input type="text" id="pseudo" name="pseudo" /></p>
<br />
<p><label for="email">E-mail : </label> <input type="text" id="email" name="email" /> </p>
<br />
<center><textarea name="message" rows="10" cols="10"> </textarea></center>
<br />

<?php
$ip = $_SERVER["REMOTE_ADDR"];

echo "<center><p><b>Votre adresse IP est :</b> <font color=\"red\"> $ip </font></p></center>";
?>

<br />

<center><input type="submit" name="submit" value="Envoyer" /> &nbsp;
<input type="reset" name="reset" value="Réinitialiser" /></center>
</fieldset>
</form>



<?php
$start=0;
if (!$start) {$start=0;}
$rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);
while($row=mysql_fetch_assoc($rec))
{
$row['message']= str_replace(":'A","<img src=\"http://www.karpeace.com/img/smileys/30.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'B","<img src=\"http://www.karpeace.com/img/smileys/2.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'C","<img src=\"http://www.karpeace.com/img/smileys/27.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'D","<img src=\"http://www.karpeace.com/img/smileys/6.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'E","<img src=\"http://www.karpeace.com/img/smileys/28.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'F","<img src=\"http://www.karpeace.com/img/smileys/21.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'G","<img src=\"http://www.karpeace.com/img/smileys/25.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'H","<img src=\"http://www.karpeace.com/img/smileys/32.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'I","<img src=\"http://www.karpeace.com/img/smileys/13.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'J","<img src=\"http://www.karpeace.com/img/smileys/29.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'K","<img src=\"http://www.karpeace.com/img/smileys/36.gif\" alt=\"smiley\" />",$row['message']);
$row['message']= str_replace(":'L","<img src=\"http://www.karpeace.com/img/smileys/45.gif\" alt=\"smiley\" />",$row['message']);
?>


<table class="messages" border="0" align="center" cellpadding="4" cellspacing="0" width="90%" summary="Tableau d&prime;affichage des messages">
<tr>
<td class="ss_messages" width="100%">
&nbsp; <img src="../img/icones/email_open.gif" alt="Ic&ocirc;ne de message" /> &nbsp;De <span class="pseudo"><?php echo stripslashes($row['pseudo']); ?></span> le <?php echo $row['date']; ?> </td>
</tr>
<tr>
<td width="100%"> <?php echo nl2br(stripslashes($row['message']));?> </td>
</tr>
</table>

<br /><br />

<?php
}

mysql_free_result($rec);

$result=mysql_query("SELECT COUNT(*) FROM guestbook");
$row = mysql_fetch_row($result);
?>

<p align="center">
<?php

if ($start == "0") {
echo"<b><font size=\"1\" face=\"Verdana\">[1]</font></b>";
} else {
echo"<a href=\"index.php?start=0\">[1]</a>";
}
for($index=1;($index*$nb)<$row[0];$index++) {
$pg = $index+1;
if(($index*$nb)!=$start) {
print("<a href=\"index.php?start=".($index*$nb)."\">");
echo"[".$pg."]";
print("</a>");
}
else {
echo" <b><font size=\"1\" face=\"Verdana\">[".$pg."]</font></b>";
} }
?></p>



Merci d'avance pour votre aide :wink:





edit dd32 : merci de ne pas laisser les urls de ce type activées :wink:
ou sinon utilise plutôt le BBcode [ code ] que [ quote ]


benben1973
WRInaute accro
WRInaute accro
 
Messages: 3273
Inscription: Lun Nov 15, 2004 16:38

Message le Jeu Jan 18, 2007 12:14

Tu dois pouvoir interdire les IP des spameurs... Sinon modère en effaçant les messages au fur et à mesure ;-)


tom_pascal
WRInaute impliqué
WRInaute impliqué
 
Messages: 278
Inscription: Lun Nov 17, 2003 13:58

Message le Jeu Jan 18, 2007 12:23

Ou encore ajoute un code captcha (image avec des lettres aléatoires à recopier) pour te prémunir des robots spammeurs.


Lebleu
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: Sam Déc 09, 2006 20:14

Message le Jeu Jan 18, 2007 12:42

merci de ne pas laisser les urls de ce type activées Wink
ou sinon utilise plutôt le BBcode [ code ] que [ quote ]


Sorry ja pas fait attention :oops:

@ benben1973

Tu dois pouvoir interdire les IP des spameurs...


Avec un instruction dans le genre à celle qui suit, ça peut le faire ?

Code: Tout sélectionner
$ip =  $_SERVER["REMOTE_ADDR"];

if ($ip == xxx) { // l'ip en question si elle n'est pas dynamique 
....
}


Le procédé est p-ê simpliste mais bon, je commence hein ... Je vais vérifier les ip dans mes stats ...

Sinon modère en effaçant les messages au fur et à mesure


@benben

Ben je crois que c'est ce que je vais faire de toutes façons ... y'a de la lecture dans l'air :lol:

Merci pour votre aide

@ +


bgdc
WRInaute passionné
WRInaute passionné
 
Messages: 657
Inscription: Lun Mai 23, 2005 20:51

Message le Jeu Jan 18, 2007 13:51

Vire simplement si le message contient un http ou un -www.

J'avais fait ça sur un site et plus de souci, un livre livre d'or c'est pour laisser des messages pas des liens.

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Jeu Jan 18, 2007 13:56

interdire l'ip des spammeurs c'est illusoire
tu peux par contre changer le nom de la page, ou le nom d'un champ, souvant fois ça suffit.


Lebleu
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: Sam Déc 09, 2006 20:14

Message le Jeu Jan 18, 2007 14:51

Vire simplement si le message contient un http ou un -www.


@bgdc : Bonne idée j'y avais pas pensé , simple en plus ....

interdire l'ip des spammeurs c'est illusoire


Je suis en train de m'en rendre compte :cry: :roll:

tu peux par contre changer le nom de la page, ou le nom d'un champ, souvant fois ça suffit.


Pas bête non plus :wink:

Je crois que je faire un petit melting pot de tout ça.

Encore merci à tous pour vos conseils :lol:

@+


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités