par
squallblanc » 07 déc. 2011, 15:42
Salut a tous je cherche depuis quelque jours a résoudre 2 problèmes de failles sur une page de mon site.
En faite j'ai une faille de type xss et une de type sql
La faille XSS:
Lorsque je met dans mon url ( vitrine.php?id=1 ) <script> alert("test"); </script> ça m'ouvre une fenêtre avec écrit test dedans donc la faille fonctionne. J'ai essayer de corriger cette faille avec le fameux htmlspecialchars() mais ca ne change rien...
La faille SQL :
Lorsque je rajoute un qote à la fin de mon url (vitrine.php?id1') je me retrouve avec l'erreur :
Erreur d'execution : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''248''' at line 1
J'ai rajoute intval() sur mon $_GET['id'] pour tenter de le corriger mais c'est pareil...
Voilas la je bute si des connaisseurs peuvent me donner un coups de main ca serais avec plaisir.
Mon code entier:
<?php
ob_start('ob_gzhandler');
require_once('../php/mobile_device_detect.php');
mobile_device_detect('http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),false,'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),false);
include_once("../php/connexion-class.php");
include_once("../php/connexion_bd.php");
include("../php/tronqueur.php");
if(isset($_GET['id'])) {
$numVitrine = intval($_GET['id']);
$maConnexion = new Connexion();
$requetebdd = "SELECT * FROM $maConnexion->tablebddAdherent WHERE id = '$numVitrine'";
$connexionbdd = $maConnexion->connexion();
$selectionbdd = $maConnexion->selection($connexionbdd);
$resultatbdd = $maConnexion->requeteQuery($requetebdd);
$tabResult = mysql_fetch_assoc($resultatbdd);
$maConnexion->fermerConnexion($connexionbdd);
$coordonnees = "".$tabResult['adresse']."<br />".$tabResult['cp']." ".$tabResult['ville']."<br />";
if($tabResult['fixe']!='')
$coordonnees .= "<b>Tél. : </b>".$tabResult['fixe']."<br />";
if($tabResult['fax']!='')
$coordonnees .= "<b>Fax : </b>".$tabResult['fax']."<br />";
if($tabResult['www']!='')
$coordonnees .= "<b>Site web :</b><a href='".$tabResult['www']."'>".$tabResult['www']."</a><br />";
if($tabResult['port']!='')
$coordonnees .= "Port. : ".$tabResult['port']."<br />";
if (file_exists("../photos/".$tabResult['identifiant']."/logo.jpg")) {
$img = "<img style='border: 1px solid #CCCCCC;' src='../photos/".$tabResult['identifiant']."/logo.jpg' title='logo-".$tabResult['societe']."' />";
}
else
$img .= "<img style='border: 1px solid #CCCCCC;' src='../images/nologo.jpg' />";
$id = $tabResult['id'];
$horaires = nl2br($tabResult['horaires']);
$contenu = nl2br($tabResult['contenud']);
$activites = nl2br($tabResult['activites']);
$descriptif = nl2br($tabResult['descriptif']);
$adressePhoto = "/".$tabResult['identifiant']."/";
$siren = nl2br($tabResult['siren']);
$adresse = nl2br($tabResult['adresse']);
$cp = nl2br($tabResult['cp']);
$ville = nl2br($tabResult['ville']);
$local = $adresse.' '.$cp.' '.$ville;
$ent = nl2br($tabResult['societe']);
$free = nl2br($tabResult['free']);
function oteAccents($str) {
$translit = array('Á'=>'A','À'=>'A','Â'=>'A','Ä'=>'A','Ã'=>'A','Å'=>'A','Ç'=>'C','É'=>'E','È'=>'E','Ê'=>'E','Ë'=>'E','Í'=>'I','Ï'=>'I','Î'=>'I','Ì'=>'I','Ñ'=>'N','Ó'=>'O','Ò'=>'O','Ô'=>'O','Ö'=>'O','Õ'=>'O','Ú'=>'U','Ù'=>'U','Û'=>'U','Ü'=>'U','Ý'=>'Y','á'=>'a','à'=>'a','â'=>'a','ä'=>'a','ã'=>'a','å'=>'a','ç'=>'c','é'=>'e','è'=>'e','ê'=>'e','ë'=>'e','í'=>'i','ì'=>'i','î'=>'i','ï'=>'i','ñ'=>'n','ó'=>'o','ò'=>'o','ô'=>'o','ö'=>'o','õ'=>'o','ú'=>'u','ù'=>'u','û'=>'u','ü'=>'u','ý'=>'y','ÿ'=>'y');
$str = strtr($str, $translit);
return preg_replace('#[^a-zA-Z0-9\-\._]#', '_', $str); // Pour des noms de fichiers par exemple
}
}
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
mysql_query("SET NAMES 'utf8'");
$sql = "SELECT * FROM horaires WHERE idSociete = '$numVitrine'";
$query = mysql_query($sql) or die (mysql_error());
while ($donnees3 = mysql_fetch_array($query) )
{
$lundi0 = $donnees3['lundi0'];
$lundi1 = $donnees3['lundi1'];
$lundi2 = $donnees3['lundi2'];
$lundi3 = $donnees3['lundi3'];
$lundi4 = $donnees3['lundi4'];
$mardi0 = $donnees3['mardi0'];
$mardi1 = $donnees3['mardi1'];
$mardi2 = $donnees3['mardi2'];
$mardi3 = $donnees3['mardi3'];
$mardi4 = $donnees3['mardi4'];
$mercredi0 = $donnees3['mercredi0'];
$mercredi1 = $donnees3['mercredi1'];
$mercredi2 = $donnees3['mercredi2'];
$mercredi3 = $donnees3['mercredi3'];
$mercredi4 = $donnees3['mercredi4'];
$jeudi0 = $donnees3['jeudi0'];
$jeudi1 = $donnees3['jeudi1'];
$jeudi2 = $donnees3['jeudi2'];
$jeudi3 = $donnees3['jeudi3'];
$jeudi4 = $donnees3['jeudi4'];
$vendredi0 = $donnees3['vendredi0'];
$vendredi1 = $donnees3['vendredi1'];
$vendredi2 = $donnees3['vendredi2'];
$vendredi3 = $donnees3['vendredi3'];
$vendredi4 = $donnees3['vendredi4'];
$samedi0 = $donnees3['samedi0'];
$samedi1 = $donnees3['samedi1'];
$samedi2 = $donnees3['samedi2'];
$samedi3 = $donnees3['samedi3'];
$samedi4 = $donnees3['samedi4'];
$dimanche0 = $donnees3['dimanche0'];
$dimanche1 = $donnees3['dimanche1'];
$dimanche2 = $donnees3['dimanche2'];
$dimanche3 = $donnees3['dimanche3'];
$dimanche4 = $donnees3['dimanche4'];
}
$sql2 = "SELECT * FROM news WHERE idSociete ='$numVitrine'";
$query2 = mysql_query($sql2) or die (mysql_error());
$nb = mysql_num_rows($query2);
if ($nb == 0) {
$num = 'Aucune news pour l\'instant.';
}
while ($row = mysql_fetch_assoc($query2))
{
$titre = $row['titre'];
$news = $row['news'];
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title><?php echo htmlspecialchars($tabResult['societe'])." - "; echo htmlspecialchars($tabResult['ville']); ?>: monsite</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<META NAME="Description" CONTENT="<? echo htmlspecialchars($descriptif); ?>">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<link rel="shortcut icon" href="../img/favicon.jpg" type="image/jpg" />
<link rel="stylesheet" href="../css/style.css" type="text/css" media="all" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'fr'}
</script>
<script type="text/javascript" src="../js/highslide-full.js"></script>
<link rel="stylesheet" type="text/css" href="../css/highslide.css" />
<link rel="stylesheet" type="text/css" href="../php/rating/test_rate_ajax.css">
<style>
body {background: url("../img/background/<? echo intval($numVitrine)?>.jpg") top center no-repeat fixed #82adfb}
</style>
<script type="text/javascript">
function initialize() {
var geocoder;
var carte;
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(48.833, 2.333);
var myOptions = {zoom: 17, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP}
var address = '<?php echo oteAccents($local) ?>';
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
myOptions.center = results[0].geometry.location;
map = new google.maps.Map(document.getElementById("carte"), myOptions);
var marker = new google.maps.Marker({
title: "<?php echo htmlspecialchars($ent) ?>",
map: carte,
position: results[0].geometry.location
});
marker.setMap(map);
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.setContent(marker.infobulle);
infowindow.open(map,marker);
});
} else {
alert("La localisation n'a pu être effectuée pour la raison suivante : " + status);
map = new google.maps.Map(document.getElementById("carte"), myOptions);
}
});
} </script>
<script language="javascript">
if( confirmation )
{
document.location.href = "../pages/reduc.php?idBonreduc="+identifiant ;
}
</script>
</head>
<body onload="initialize()">
<div id="fond">
<div id="contenu">
<div id="entete">
<?php
include('../inc/entete3.php');
entete(1);
?>
</div>
<?php
include('../inc/menu-entete.php');
include ('../inc/ariane.php');
?>
<div id="corpsplein">
<div id="ads-790">
<?php
include('../inc/ads-ban.php');
?>
</div>
<div id="header-vitrine">
<div id="nom-societe">
<?php echo htmlspecialchars($tabResult['societe']) ?>
</div>
<div id="social">
<script src="http://connect.facebook.net/fr_FR/all.js#xfbml=1"></script>
<fb:like href="http://www.facebook.com/pages/montsite" layout="button_count" show_faces="true" width="90" font=""></fb:like><div id="gplus"><g:plusone size="medium"></g:plusone>
</div>
</div>
</div>
<div id="eval">
<div id="logo-societe">
<div class="tete-menu-droit">
Coordonnées
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<!-- include Cycle plugin -->
<script type="text/javascript" src="../js/jquery.cycle.all.latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.slideshow').cycle({
fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
});
});
</script>
<script type="text/javascript">
$(function() {
$('#infoPlus').click(function() {
if($('#descriptionCommerce').css('display') == 'block'){
$(this).html('Lire la suite');
} else {
$(this).html('Fermer');
}
$('#descriptionCommerce').slideToggle('slow');
return false;
});
$('#descriptionCommerce').hide();
});
</script>
<script type="text/javascript">
hs.graphicsDir = '../css/graphics/';
hs.align = 'center';
hs.transitions = ['expand', 'crossfade'];
hs.outlineType = 'rounded-white';
hs.fadeInOut = true;
hs.dimmingOpacity = 0.75;
// define the restraining box
hs.useBox = true;
hs.width = 640;
hs.height = 480;
// Add the controlbar
hs.addSlideshow({
//slideshowGroup: 'group1',
interval: 5000,
repeat: false,
useControls: true,
fixedControls: 'fit',
overlayOptions: {
opacity: 1,
position: 'bottom center',
hideOnMouseOut: true
}
});
</script>
<center><div class="slideshow" style="z-index:0;">
<?php echo $img; ?>
<?php
if (file_exists("../photos".$adressePhoto."img1.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img1.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img1.jpg" width="200" height="137" />
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img2.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img2.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img2.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img3.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img3.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img3.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img4.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img4.jpg" onclick="return hs.expand(this)">
<img class="last" src="../photos<?php echo $adressePhoto; ?>img4.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img5.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img5.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img5.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img6.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img6.jpg" onclick="return hs.expand(this)" >
<img src="../photos<?php echo $adressePhoto; ?>img6.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img7.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img7.jpg" onclick="return hs.expand(this)">
<img class="last" src="../photos<?php echo $adressePhoto; ?>img7.jpg" width="200" height="137" />
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img8.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img8.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img8.jpg" width="200" height="137" />
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img9.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img9.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img9.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img10.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img10.jpg" onclick="return hs.expand(this)">
<img class="last" src="../photos<?php echo $adressePhoto; ?>img10.jpg" width="200" height="137"/>
</a>
<?php
}
?>
</div></center>
<div class="contenu-menu-droit">
<?php
if (isset($coordonnees))
echo nl2br($coordonnees);
?>
<?php if ($free == 0) { ?>
<a onclick="javascript:pop_contact=window.open('pop_contact.php?idCom=<?php echo $numVitrine?>', 'contact', 'width=450, height=590');pop_contact.focus();" href="#contact" ><img src="../img/bouton_contact.png" width="130" height="27" alt="contact" vspace="5" /></a>
<?php }?>
</div>
</div>
<?php if ($free == 0) { ?>
<div class="tete-menu-droit">
Recommander ce commerçe
</div>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_preferred_3"></a>
<a class="addthis_button_preferred_4"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<script type="text/javascript">
var addthis_config = {
"data_track_clickback":true
};
</script>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4ead869a4c5b9165"></script>
<div id="rate_div">
<?php include('rate_ajax.php'); ?>
</div>
<?php } ?>
<div id="horaires">
<div class="tete-menu-droit">
Horaires d'ouverture
</div>
<table width="100%" >
<tr>
<td width="23%"><b>Lundi</b></td>
<td width="26%"><?php if (isset($lundi0)) echo htmlspecialchars($lundi0) ?> <?php if (isset($lundi1)) echo "- ", htmlspecialchars($lundi1) ?></td>
<td width="31%"><?php if (isset($lundi2)) echo "| ", htmlspecialchars($lundi2) ?> <?php if (isset($lundi3)) echo "- ",htmlspecialchars($lundi3) ?></td>
</tr>
<tr>
<td><b>Mardi</b></td>
<td><?php if (isset($mardi0)) echo htmlspecialchars($mardi0) ?> <?php if (isset($mardi1)) echo "- ",htmlspecialchars($mardi1) ?></td>
<td><?php if (isset($mardi2)) echo "| ", htmlspecialchars($mardi2) ?> <?php if (isset($mardi3)) echo "- ",htmlspecialchars($mardi3) ?></td>
</tr>
<tr>
<td><b>Mercredi</b></td>
<td><?php if (isset($mercredi0)) echo htmlspecialchars($mercredi0) ?> <?php if (isset($mercredi1)) echo "- ", htmlspecialchars($mercredi1) ?></td>
<td><?php if (isset($mercredi2)) echo "| ",htmlspecialchars($mercredi2) ?> <?php if (isset($mercredi3)) echo "- ",htmlspecialchars($mercredi3) ?></td>
</tr>
<tr>
<td><b>Jeudi</b></td>
<td><?php if (isset($jeudi0)) echo htmlspecialchars($jeudi0) ?> <?php if (isset($jeudi1)) echo "- ", htmlspecialchars($jeudi1) ?></td>
<td><?php if (isset($jeudi2)) echo "| ",htmlspecialchars($jeudi2) ?> <?php if (isset($jeudi3)) echo "- ",htmlspecialchars($jeudi3) ?></td>
</tr>
<tr>
<td><b>Vendredi</b></td>
<td><?php if (isset($vendredi0)) echo htmlspecialchars($vendredi0), "- " ?> <?php if (isset($vendredi1)) echo htmlspecialchars($vendredi1) ?></td>
<td><?php if (isset($vendredi2)) echo "| ",htmlspecialchars($vendredi2) ?> <?php if (isset($vendredi3)) echo "- ",htmlspecialchars($vendredi3) ?></td>
</tr>
<tr>
<td><b>Samedi</b></td>
<td><?php if (isset($samedi0)) echo htmlspecialchars($samedi0) ?> <?php if (isset($samedi1)) echo "- ", htmlspecialchars($samedi1) ?></td>
<td><?php if (isset($samedi2)) echo "| ",htmlspecialchars($samedi2) ?> <?php if (isset($samedi3)) echo "- ",htmlspecialchars($samedi3) ?></td>
</tr>
<tr>
<td><b>Dimanche</b></td>
<td><?php if (isset($dimanche0)) echo htmlspecialchars($dimanche0) ?> <?php if (isset($dimanche1)) echo "- ", htmlspecialchars($dimanche1) ?></td>
<td><?php if (isset($dimanche2)) echo "| ",htmlspecialchars($dimanche2) ?> <?php if (isset($dimanche3)) echo "- ", htmlspecialchars($dimanche3) ?></td>
</tr>
</table>
</div>
<?php if ($free == 0) { ?>
<div class="tete-menu-droit">
Nous localiser
</div>
<center><div id="carte" style="width: 260px; height: 200px"></div></center>
<?php } ?>
</div>
<div id="contenu-dynamique">
<div class="tete-contenu-gauche">
Bienvenue
</div>
<div class="contenu-gauche">
<?php if ($free == 0) {
if (empty($contenu))
echo 'Ce commerçant n\'a pas activé ca page personnelle. Veuillez cliquer sur lire la suite pour consulter ces informafions<br/><br />';
else
echo $contenu;
?>
<div id="descriptionCommerce" style="display:none;">
<h3>Activité</h3>
<?php
if (isset($activites))
echo $activites; ?>
<br /><br />
<h3>Description</h3>
<?php
if (isset($descriptif))
echo $descriptif; ?>
</div><br />
<a href="javascript:void(0);" id="infoPlus" class="infoplus">Lire la suite</a>
<?php } else {
if (isset($descriptif))
echo $descriptif;
?>
<hr />
<div id="carte" style="width: 675px; height: 400px"></div>
<?php } ?>
</div>
</div>
<?php if ($free == 0) {?>
<div id="slide-reduc">
<div id="reductions-vitrine">
<div class="tete-contenu-gauche">
Nos bons de réductions
</div>
<?php
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
$sql = "SELECT * FROM bonreduc WHERE siren = '$siren'" ;
//exécution de la requête:
$query = mysql_query($sql) or die (mysql_error());
$nb = mysql_num_rows($query);
if ($nb == 0) {
echo '<span style="color:black; font-size:12px;">Aucun bons de réduction pour l\'instant.</span>';
}
//affichage des données:
while( $result = mysql_fetch_object( $query ) )
{
echo("<div class='contenu-reductions-vitrine'><a href=../pages/reduc.php?id=$result->id>".utf8_encode($result->reduction)."".utf8_encode($result->valeur)." ".utf8_encode($result->redtxt)." </a><br></div>\n") ;
} ?>
</div>
<div id="bas-contenu-droite">
<div class="tete-contenu-gauche">
Actualités
</div>
<div class="contenu-actualite">
<?php echo $num ?>
<b><?php echo htmlspecialchars($titre) ?></b><br /><?php echo TronqueHtml($news, 150, ' ', ' ...') ?>
</div>
</div>
<?php } else {?>
<div id="bas-contenu-free">
<table width="690" border="0">
<tr>
<td width="118"><img src="../img/no_avatar.gif" width="95" height="95" alt="no_logo" align="center"/></td>
<td width="562"><?php echo htmlspecialchars($tabResult['societe'])." - "; echo htmlspecialchars($tabResult['ville']); ?> vous souhaite la bienvenue...<br />
Vous êtes le responsable du commerce <?php echo htmlspecialchars($tabResult['societe'])." - "; echo htmlspecialchars($tabResult['ville']); ?>?
Si vous souhaitez ajouter modifier le logo, vos horaires d'ouverture ou ajouter une petite description de votre entreprise GRATUITEMENT ou obtenir une <a href="offres.php" class="vert">Vitrine internet ou un pack de vente en ligne</a>, contactez nous. <br />mon site reste à votre disposition pour tout autres renseignements.<br />
<b><a href="aide.php" title="aide">Modifiez ou complétez vos informations.</a></b></td>
</tr>
</table>
</div>
<?php }?>
</div>
<?php include_once("../inc/pied-mini.php"); ?>
<?php
include_once("../php/record_stat.php");
?>
</div>
</div>
</div>
</div>
</body>
</html>
Merci a vous
Salut a tous je cherche depuis quelque jours a résoudre 2 problèmes de failles sur une page de mon site.
En faite j'ai une faille de type xss et une de type sql
[u]La faille XSS:[/u]
Lorsque je met dans mon url ( vitrine.php?id=1 ) <script> alert("test"); </script> ça m'ouvre une fenêtre avec écrit test dedans donc la faille fonctionne. J'ai essayer de corriger cette faille avec le fameux htmlspecialchars() mais ca ne change rien...
[u]La faille SQL :[/u]
Lorsque je rajoute un qote à la fin de mon url (vitrine.php?id1') je me retrouve avec l'erreur :
[quote]Erreur d'execution : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''248''' at line 1[/quote]
J'ai rajoute intval() sur mon $_GET['id'] pour tenter de le corriger mais c'est pareil...
Voilas la je bute si des connaisseurs peuvent me donner un coups de main ca serais avec plaisir.
Mon code entier:
[php]
<?php
ob_start('ob_gzhandler');
require_once('../php/mobile_device_detect.php');
mobile_device_detect('http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),false,'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),
'http://'.$_SERVER["PHP_SELF"].'/mobile/vitrine.php?id='.htmlspecialchars($_GET['id']),false);
include_once("../php/connexion-class.php");
include_once("../php/connexion_bd.php");
include("../php/tronqueur.php");
if(isset($_GET['id'])) {
$numVitrine = intval($_GET['id']);
$maConnexion = new Connexion();
$requetebdd = "SELECT * FROM $maConnexion->tablebddAdherent WHERE id = '$numVitrine'";
$connexionbdd = $maConnexion->connexion();
$selectionbdd = $maConnexion->selection($connexionbdd);
$resultatbdd = $maConnexion->requeteQuery($requetebdd);
$tabResult = mysql_fetch_assoc($resultatbdd);
$maConnexion->fermerConnexion($connexionbdd);
$coordonnees = "".$tabResult['adresse']."<br />".$tabResult['cp']." ".$tabResult['ville']."<br />";
if($tabResult['fixe']!='')
$coordonnees .= "<b>Tél. : </b>".$tabResult['fixe']."<br />";
if($tabResult['fax']!='')
$coordonnees .= "<b>Fax : </b>".$tabResult['fax']."<br />";
if($tabResult['www']!='')
$coordonnees .= "<b>Site web :</b><a href='".$tabResult['www']."'>".$tabResult['www']."</a><br />";
if($tabResult['port']!='')
$coordonnees .= "Port. : ".$tabResult['port']."<br />";
if (file_exists("../photos/".$tabResult['identifiant']."/logo.jpg")) {
$img = "<img style='border: 1px solid #CCCCCC;' src='../photos/".$tabResult['identifiant']."/logo.jpg' title='logo-".$tabResult['societe']."' />";
}
else
$img .= "<img style='border: 1px solid #CCCCCC;' src='../images/nologo.jpg' />";
$id = $tabResult['id'];
$horaires = nl2br($tabResult['horaires']);
$contenu = nl2br($tabResult['contenud']);
$activites = nl2br($tabResult['activites']);
$descriptif = nl2br($tabResult['descriptif']);
$adressePhoto = "/".$tabResult['identifiant']."/";
$siren = nl2br($tabResult['siren']);
$adresse = nl2br($tabResult['adresse']);
$cp = nl2br($tabResult['cp']);
$ville = nl2br($tabResult['ville']);
$local = $adresse.' '.$cp.' '.$ville;
$ent = nl2br($tabResult['societe']);
$free = nl2br($tabResult['free']);
function oteAccents($str) {
$translit = array('Á'=>'A','À'=>'A','Â'=>'A','Ä'=>'A','Ã'=>'A','Å'=>'A','Ç'=>'C','É'=>'E','È'=>'E','Ê'=>'E','Ë'=>'E','Í'=>'I','Ï'=>'I','Î'=>'I','Ì'=>'I','Ñ'=>'N','Ó'=>'O','Ò'=>'O','Ô'=>'O','Ö'=>'O','Õ'=>'O','Ú'=>'U','Ù'=>'U','Û'=>'U','Ü'=>'U','Ý'=>'Y','á'=>'a','à'=>'a','â'=>'a','ä'=>'a','ã'=>'a','å'=>'a','ç'=>'c','é'=>'e','è'=>'e','ê'=>'e','ë'=>'e','í'=>'i','ì'=>'i','î'=>'i','ï'=>'i','ñ'=>'n','ó'=>'o','ò'=>'o','ô'=>'o','ö'=>'o','õ'=>'o','ú'=>'u','ù'=>'u','û'=>'u','ü'=>'u','ý'=>'y','ÿ'=>'y');
$str = strtr($str, $translit);
return preg_replace('#[^a-zA-Z0-9\-\._]#', '_', $str); // Pour des noms de fichiers par exemple
}
}
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
mysql_query("SET NAMES 'utf8'");
$sql = "SELECT * FROM horaires WHERE idSociete = '$numVitrine'";
$query = mysql_query($sql) or die (mysql_error());
while ($donnees3 = mysql_fetch_array($query) )
{
$lundi0 = $donnees3['lundi0'];
$lundi1 = $donnees3['lundi1'];
$lundi2 = $donnees3['lundi2'];
$lundi3 = $donnees3['lundi3'];
$lundi4 = $donnees3['lundi4'];
$mardi0 = $donnees3['mardi0'];
$mardi1 = $donnees3['mardi1'];
$mardi2 = $donnees3['mardi2'];
$mardi3 = $donnees3['mardi3'];
$mardi4 = $donnees3['mardi4'];
$mercredi0 = $donnees3['mercredi0'];
$mercredi1 = $donnees3['mercredi1'];
$mercredi2 = $donnees3['mercredi2'];
$mercredi3 = $donnees3['mercredi3'];
$mercredi4 = $donnees3['mercredi4'];
$jeudi0 = $donnees3['jeudi0'];
$jeudi1 = $donnees3['jeudi1'];
$jeudi2 = $donnees3['jeudi2'];
$jeudi3 = $donnees3['jeudi3'];
$jeudi4 = $donnees3['jeudi4'];
$vendredi0 = $donnees3['vendredi0'];
$vendredi1 = $donnees3['vendredi1'];
$vendredi2 = $donnees3['vendredi2'];
$vendredi3 = $donnees3['vendredi3'];
$vendredi4 = $donnees3['vendredi4'];
$samedi0 = $donnees3['samedi0'];
$samedi1 = $donnees3['samedi1'];
$samedi2 = $donnees3['samedi2'];
$samedi3 = $donnees3['samedi3'];
$samedi4 = $donnees3['samedi4'];
$dimanche0 = $donnees3['dimanche0'];
$dimanche1 = $donnees3['dimanche1'];
$dimanche2 = $donnees3['dimanche2'];
$dimanche3 = $donnees3['dimanche3'];
$dimanche4 = $donnees3['dimanche4'];
}
$sql2 = "SELECT * FROM news WHERE idSociete ='$numVitrine'";
$query2 = mysql_query($sql2) or die (mysql_error());
$nb = mysql_num_rows($query2);
if ($nb == 0) {
$num = 'Aucune news pour l\'instant.';
}
while ($row = mysql_fetch_assoc($query2))
{
$titre = $row['titre'];
$news = $row['news'];
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title><?php echo htmlspecialchars($tabResult['societe'])." - "; echo htmlspecialchars($tabResult['ville']); ?>: monsite</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<META NAME="Description" CONTENT="<? echo htmlspecialchars($descriptif); ?>">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<link rel="shortcut icon" href="../img/favicon.jpg" type="image/jpg" />
<link rel="stylesheet" href="../css/style.css" type="text/css" media="all" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'fr'}
</script>
<script type="text/javascript" src="../js/highslide-full.js"></script>
<link rel="stylesheet" type="text/css" href="../css/highslide.css" />
<link rel="stylesheet" type="text/css" href="../php/rating/test_rate_ajax.css">
<style>
body {background: url("../img/background/<? echo intval($numVitrine)?>.jpg") top center no-repeat fixed #82adfb}
</style>
<script type="text/javascript">
function initialize() {
var geocoder;
var carte;
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(48.833, 2.333);
var myOptions = {zoom: 17, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP}
var address = '<?php echo oteAccents($local) ?>';
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
myOptions.center = results[0].geometry.location;
map = new google.maps.Map(document.getElementById("carte"), myOptions);
var marker = new google.maps.Marker({
title: "<?php echo htmlspecialchars($ent) ?>",
map: carte,
position: results[0].geometry.location
});
marker.setMap(map);
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.setContent(marker.infobulle);
infowindow.open(map,marker);
});
} else {
alert("La localisation n'a pu être effectuée pour la raison suivante : " + status);
map = new google.maps.Map(document.getElementById("carte"), myOptions);
}
});
} </script>
<script language="javascript">
if( confirmation )
{
document.location.href = "../pages/reduc.php?idBonreduc="+identifiant ;
}
</script>
</head>
<body onload="initialize()">
<div id="fond">
<div id="contenu">
<div id="entete">
<?php
include('../inc/entete3.php');
entete(1);
?>
</div>
<?php
include('../inc/menu-entete.php');
include ('../inc/ariane.php');
?>
<div id="corpsplein">
<div id="ads-790">
<?php
include('../inc/ads-ban.php');
?>
</div>
<div id="header-vitrine">
<div id="nom-societe">
<?php echo htmlspecialchars($tabResult['societe']) ?>
</div>
<div id="social">
<script src="http://connect.facebook.net/fr_FR/all.js#xfbml=1"></script>
<fb:like href="http://www.facebook.com/pages/montsite" layout="button_count" show_faces="true" width="90" font=""></fb:like><div id="gplus"><g:plusone size="medium"></g:plusone>
</div>
</div>
</div>
<div id="eval">
<div id="logo-societe">
<div class="tete-menu-droit">
Coordonnées
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<!-- include Cycle plugin -->
<script type="text/javascript" src="../js/jquery.cycle.all.latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.slideshow').cycle({
fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
});
});
</script>
<script type="text/javascript">
$(function() {
$('#infoPlus').click(function() {
if($('#descriptionCommerce').css('display') == 'block'){
$(this).html('Lire la suite');
} else {
$(this).html('Fermer');
}
$('#descriptionCommerce').slideToggle('slow');
return false;
});
$('#descriptionCommerce').hide();
});
</script>
<script type="text/javascript">
hs.graphicsDir = '../css/graphics/';
hs.align = 'center';
hs.transitions = ['expand', 'crossfade'];
hs.outlineType = 'rounded-white';
hs.fadeInOut = true;
hs.dimmingOpacity = 0.75;
// define the restraining box
hs.useBox = true;
hs.width = 640;
hs.height = 480;
// Add the controlbar
hs.addSlideshow({
//slideshowGroup: 'group1',
interval: 5000,
repeat: false,
useControls: true,
fixedControls: 'fit',
overlayOptions: {
opacity: 1,
position: 'bottom center',
hideOnMouseOut: true
}
});
</script>
<center><div class="slideshow" style="z-index:0;">
<?php echo $img; ?>
<?php
if (file_exists("../photos".$adressePhoto."img1.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img1.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img1.jpg" width="200" height="137" />
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img2.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img2.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img2.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img3.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img3.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img3.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img4.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img4.jpg" onclick="return hs.expand(this)">
<img class="last" src="../photos<?php echo $adressePhoto; ?>img4.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img5.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img5.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img5.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img6.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img6.jpg" onclick="return hs.expand(this)" >
<img src="../photos<?php echo $adressePhoto; ?>img6.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img7.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img7.jpg" onclick="return hs.expand(this)">
<img class="last" src="../photos<?php echo $adressePhoto; ?>img7.jpg" width="200" height="137" />
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img8.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img8.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img8.jpg" width="200" height="137" />
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img9.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img9.jpg" onclick="return hs.expand(this)">
<img src="../photos<?php echo $adressePhoto; ?>img9.jpg" width="200" height="137"/>
</a>
<?php
}
if (file_exists("../photos".$adressePhoto."img10.jpg")) {
?>
<a href="../photos/<?php echo $adressePhoto; ?>img10.jpg" onclick="return hs.expand(this)">
<img class="last" src="../photos<?php echo $adressePhoto; ?>img10.jpg" width="200" height="137"/>
</a>
<?php
}
?>
</div></center>
<div class="contenu-menu-droit">
<?php
if (isset($coordonnees))
echo nl2br($coordonnees);
?>
<?php if ($free == 0) { ?>
<a onclick="javascript:pop_contact=window.open('pop_contact.php?idCom=<?php echo $numVitrine?>', 'contact', 'width=450, height=590');pop_contact.focus();" href="#contact" ><img src="../img/bouton_contact.png" width="130" height="27" alt="contact" vspace="5" /></a>
<?php }?>
</div>
</div>
<?php if ($free == 0) { ?>
<div class="tete-menu-droit">
Recommander ce commerçe
</div>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_preferred_3"></a>
<a class="addthis_button_preferred_4"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<script type="text/javascript">
var addthis_config = {
"data_track_clickback":true
};
</script>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4ead869a4c5b9165"></script>
<div id="rate_div">
<?php include('rate_ajax.php'); ?>
</div>
<?php } ?>
<div id="horaires">
<div class="tete-menu-droit">
Horaires d'ouverture
</div>
<table width="100%" >
<tr>
<td width="23%"><b>Lundi</b></td>
<td width="26%"><?php if (isset($lundi0)) echo htmlspecialchars($lundi0) ?> <?php if (isset($lundi1)) echo "- ", htmlspecialchars($lundi1) ?></td>
<td width="31%"><?php if (isset($lundi2)) echo "| ", htmlspecialchars($lundi2) ?> <?php if (isset($lundi3)) echo "- ",htmlspecialchars($lundi3) ?></td>
</tr>
<tr>
<td><b>Mardi</b></td>
<td><?php if (isset($mardi0)) echo htmlspecialchars($mardi0) ?> <?php if (isset($mardi1)) echo "- ",htmlspecialchars($mardi1) ?></td>
<td><?php if (isset($mardi2)) echo "| ", htmlspecialchars($mardi2) ?> <?php if (isset($mardi3)) echo "- ",htmlspecialchars($mardi3) ?></td>
</tr>
<tr>
<td><b>Mercredi</b></td>
<td><?php if (isset($mercredi0)) echo htmlspecialchars($mercredi0) ?> <?php if (isset($mercredi1)) echo "- ", htmlspecialchars($mercredi1) ?></td>
<td><?php if (isset($mercredi2)) echo "| ",htmlspecialchars($mercredi2) ?> <?php if (isset($mercredi3)) echo "- ",htmlspecialchars($mercredi3) ?></td>
</tr>
<tr>
<td><b>Jeudi</b></td>
<td><?php if (isset($jeudi0)) echo htmlspecialchars($jeudi0) ?> <?php if (isset($jeudi1)) echo "- ", htmlspecialchars($jeudi1) ?></td>
<td><?php if (isset($jeudi2)) echo "| ",htmlspecialchars($jeudi2) ?> <?php if (isset($jeudi3)) echo "- ",htmlspecialchars($jeudi3) ?></td>
</tr>
<tr>
<td><b>Vendredi</b></td>
<td><?php if (isset($vendredi0)) echo htmlspecialchars($vendredi0), "- " ?> <?php if (isset($vendredi1)) echo htmlspecialchars($vendredi1) ?></td>
<td><?php if (isset($vendredi2)) echo "| ",htmlspecialchars($vendredi2) ?> <?php if (isset($vendredi3)) echo "- ",htmlspecialchars($vendredi3) ?></td>
</tr>
<tr>
<td><b>Samedi</b></td>
<td><?php if (isset($samedi0)) echo htmlspecialchars($samedi0) ?> <?php if (isset($samedi1)) echo "- ", htmlspecialchars($samedi1) ?></td>
<td><?php if (isset($samedi2)) echo "| ",htmlspecialchars($samedi2) ?> <?php if (isset($samedi3)) echo "- ",htmlspecialchars($samedi3) ?></td>
</tr>
<tr>
<td><b>Dimanche</b></td>
<td><?php if (isset($dimanche0)) echo htmlspecialchars($dimanche0) ?> <?php if (isset($dimanche1)) echo "- ", htmlspecialchars($dimanche1) ?></td>
<td><?php if (isset($dimanche2)) echo "| ",htmlspecialchars($dimanche2) ?> <?php if (isset($dimanche3)) echo "- ", htmlspecialchars($dimanche3) ?></td>
</tr>
</table>
</div>
<?php if ($free == 0) { ?>
<div class="tete-menu-droit">
Nous localiser
</div>
<center><div id="carte" style="width: 260px; height: 200px"></div></center>
<?php } ?>
</div>
<div id="contenu-dynamique">
<div class="tete-contenu-gauche">
Bienvenue
</div>
<div class="contenu-gauche">
<?php if ($free == 0) {
if (empty($contenu))
echo 'Ce commerçant n\'a pas activé ca page personnelle. Veuillez cliquer sur lire la suite pour consulter ces informafions<br/><br />';
else
echo $contenu;
?>
<div id="descriptionCommerce" style="display:none;">
<h3>Activité</h3>
<?php
if (isset($activites))
echo $activites; ?>
<br /><br />
<h3>Description</h3>
<?php
if (isset($descriptif))
echo $descriptif; ?>
</div><br />
<a href="javascript:void(0);" id="infoPlus" class="infoplus">Lire la suite</a>
<?php } else {
if (isset($descriptif))
echo $descriptif;
?>
<hr />
<div id="carte" style="width: 675px; height: 400px"></div>
<?php } ?>
</div>
</div>
<?php if ($free == 0) {?>
<div id="slide-reduc">
<div id="reductions-vitrine">
<div class="tete-contenu-gauche">
Nos bons de réductions
</div>
<?php
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
$sql = "SELECT * FROM bonreduc WHERE siren = '$siren'" ;
//exécution de la requête:
$query = mysql_query($sql) or die (mysql_error());
$nb = mysql_num_rows($query);
if ($nb == 0) {
echo '<span style="color:black; font-size:12px;">Aucun bons de réduction pour l\'instant.</span>';
}
//affichage des données:
while( $result = mysql_fetch_object( $query ) )
{
echo("<div class='contenu-reductions-vitrine'><a href=../pages/reduc.php?id=$result->id>".utf8_encode($result->reduction)."".utf8_encode($result->valeur)." ".utf8_encode($result->redtxt)." </a><br></div>\n") ;
} ?>
</div>
<div id="bas-contenu-droite">
<div class="tete-contenu-gauche">
Actualités
</div>
<div class="contenu-actualite">
<?php echo $num ?>
<b><?php echo htmlspecialchars($titre) ?></b><br /><?php echo TronqueHtml($news, 150, ' ', ' ...') ?>
</div>
</div>
<?php } else {?>
<div id="bas-contenu-free">
<table width="690" border="0">
<tr>
<td width="118"><img src="../img/no_avatar.gif" width="95" height="95" alt="no_logo" align="center"/></td>
<td width="562"><?php echo htmlspecialchars($tabResult['societe'])." - "; echo htmlspecialchars($tabResult['ville']); ?> vous souhaite la bienvenue...<br />
Vous êtes le responsable du commerce <?php echo htmlspecialchars($tabResult['societe'])." - "; echo htmlspecialchars($tabResult['ville']); ?>?
Si vous souhaitez ajouter modifier le logo, vos horaires d'ouverture ou ajouter une petite description de votre entreprise GRATUITEMENT ou obtenir une <a href="offres.php" class="vert">Vitrine internet ou un pack de vente en ligne</a>, contactez nous. <br />mon site reste à votre disposition pour tout autres renseignements.<br />
<b><a href="aide.php" title="aide">Modifiez ou complétez vos informations.</a></b></td>
</tr>
</table>
</div>
<?php }?>
</div>
<?php include_once("../inc/pied-mini.php"); ?>
<?php
include_once("../php/record_stat.php");
?>
</div>
</div>
</div>
</div>
</body>
</html>
[/php]
Merci a vous