webForumDet fria alternativet

Sanitera input (MySQL)

1 svar · 584 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 274 inlägg
#1

Hur kan man sanitera/säkra följande paging-kod?

///// PAGING - START 
// Nu bestämmer vi antal per sida och kollar vi upp totala antalet
$limit = 5; // Antal per sida
$result = @mysql_query("SELECT count(*) as count FROM gastbok")
  or die("Error fetching number in DB<br>".mysql_error());
$row = @mysql_fetch_array($result);
$numrows = $row['count']; // Antal i databasen
 
// Sedan kollar vi om startvariabeln är satt
if (!isset($_GET['start']) || $_GET['start'] == "")
  $start = 0;
else
  $start = htmlentities($_GET['start']);
 
// Då räknar vi ut hur många sidor det blev
$pages = intval($numrows/$limit);
if ($numrows%$limit)
  $pages++;
 
// Hämta länk till förstasidan och föregående sida
if ($start > 0) {
  $numlink = '<a href="gastbok.php?start=0">««</a> ';
  $numlink .= '<a href="gastbok.php?start='.($start - $limit).'">«</a> ';
} else {
  $numlink = '«« ';
  $numlink .= '« ';
}
 
// Hämta sidonummer
for ($i = 1; $i <= $pages; $i++) {
  $newoffset = $limit*($i-1);
  if ($start == $newoffset)
    $numlink .= '['.$i.'] ';
  else
    $numlink .= '<a href="gastbok.php?start='.$newoffset.'">'.$i.'</a> ';
}
 
// Hämta länk till nästa sida
if ($numrows > ($start + $limit))
  $numlink .= '<a href="gastbok.php?start='.($start + $limit).'">»</a> ';
else
  $numlink .= '» ';
 
// Hämta sista sidan
if ($start != $newoffset)
  $numlink .= '<a href="gastbok.php?start='.$newoffset.'">»»</a> ';
else
  $numlink .= '»»';

Tacksam för alla tips/förslag.

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Jag vet inte vad som skulle kunna säkras; det skickas ju inte in något till SQL-frågan. Är det någon specifik del du är orolig för?

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb