Опитвам се да разбера колко незащитен е този код за подобни атаки и как мога да го защитя допълнително?
Доколкото разбирам тук уязвимите точки са: id, currid, joke_id
Или се бъркам? Как да ги защитя по-добре?
Код:
if(isset($_GET['joke_id'])&& is_numeric($_GET['joke_id'])){
$joke_id = $_GET['joke_id'];
$qry = "SELECT * FROM joke WHERE joke_cat = '$joke_id'";
$result = mysqli_query($con, $qry) or die("Query failed: " . mysqli_errno($con));
$line = mysqli_fetch_array($result, MYSQL_BOTH);
if (!$line) echo '';
$previd = -1;
$currid = $line[0];
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
do {
$currid = $line[0];
if ($currid == (int)$_GET['id']) break;
$previd = $currid;
$line = mysqli_fetch_array($result, MYSQL_BOTH);
} while ($line);
}
if ($line) {
echo nl2br($line['text']) . "<br /><br />";
echo '<br /><br /><br />';
}
else echo '<p>Категорията е празна</p><br/>';
if ($previd > -1)
echo '<a href="cat_vic.php?joke_id='.$joke_id.'&id='.$previd.'" class="prev_pic"><span>Предишен</span></a>';
echo str_repeat(' ', 5);
$line = mysqli_fetch_array($result, MYSQL_BOTH);
if ($line) echo '<a href="cat_vic.php?joke_id='.$joke_id.'&id='.$line[0].'" class="next_pic"><span>Следващ</span></a><br /><br />';
echo "</div>";
}
Или се бъркам? Как да ги защитя по-добре?