как да поверя нали кода ми е защитен от sql injection

Ако имаш примерно

index.php?id= 2

направи така

index.php?id=\

и ако ти излезне грешка от mysql значи няма get защита.
 
празна страница ако сложа един if ($GET['id']==NULL){ echo"не си въвел ид ??"; }else{} ще станели не6то[/img]
или
$id = trim(htmlspecialchars(addslashes($_GET['id']))); ??
 
Например имаш линк
index.php?id=5

Правиш проверката, чрез
index.php?id=5'

А, ако искаш да нямаш проблеми си защити GET и POST заявките :?:
 
Код:
<?php
include("config.php");
$id = trim(htmlspecialchars(addslashes($_GET['id'])));
$sql = mysql_query("SELECT * from `gallery` WHERE `id`='$id'");
while($row = mysql_fetch_array($sql)) {
$title = $row['title'];
$avtor = $row['avtor'];
$snimka = $row['snimka'];
$uid = $row['uid'];
$info = $row['info'];
$data = $row['data'];

echo '
<center>
';
	echo "<h2>$title</h2>";
	echo '<a href="'.$snimka.'" rel="lightbox" alt="'.$snimka.'"><img src="'.$snimka.'" width="450" height="400" alt="'.$snimka.'"  /></a><br />';
	echo 'Описание:<br>'. addslashes(strip_tags(htmlspecialchars($info)));
	echo "<div class='hr'></div><img src='img/user.gif'> <a href=\"./forum/memberlist.php?mode=viewprofile&u=$uid\">$avtor</a>";
	echo '</a> - на '.addslashes(strip_tags(htmlspecialchars($data)));
	echo '</center>';
}



?>
 
Предполагам ползваш само числа за id-номера и съм ти редактирал кода.
Така трябва всичко да е както трябва.

Код:
<?php
include("config.php");
$id = int($_GET['id']);
$sql = mysql_query("SELECT * from `gallery` WHERE `id`='$id'");
while($row = mysql_fetch_array($sql)) {
$title = $row['title'];
$avtor = $row['avtor'];
$snimka = $row['snimka'];
$uid = $row['uid'];
$info = $row['info'];
$data = $row['data'];

   echo '<center>';
   echo "<h2>$title</h2>";
   echo '<a href="'.$snimka.'" rel="lightbox" alt="'.$snimka.'"><img src="'.$snimka.'" width="450" height="400" alt="'.$snimka.'"  /></a><br />';
   echo 'Описание:<br> $info';
   echo "<div class='hr'></div><img src='img/user.gif'> <a href=\"./forum/memberlist.php?mode=viewprofile&u=$uid\">$avtor</a>";
   echo '</a> - на $data';
   echo '</center>';
}
?>
 
$title = $row['title'];
$avtor = $row['avtor'];
$snimka = $row['snimka'];
$uid = $row['uid'];
$info = $row['info'];
$data = $row['data'];
на тези не ли хубаво да се сложи addslashes?
 
porkie каза:
$title = $row['title'];
$avtor = $row['avtor'];
$snimka = $row['snimka'];
$uid = $row['uid'];
$info = $row['info'];
$data = $row['data'];
на тези не ли хубаво да се сложи addslashes?

За какво? При положение, че си ги записал в базата данни и всичко е както трябва :) (предполагам)
 
Еми имам идна идея как да разбереш :D
Пускаш тема в някой форум за хакери и казваш, че сайта ти не може да бъде хакнат защото си го защитил много добре и даваш линк към него. Ако след 1 седмица е останало нещо значи си го защитил :D :D :D
 
KlaXeN каза:
СЛАГА СЕ \ не 2' :wink:
Трябва да четеш повече.
1). Check for vulnerability

Let's say that we have some site like this

http://www.site.com/news.php?id=5

Now to test if is vulrnable we add to the end of url ' (quote),

and that would be http://www.site.com/news.php?id=5'

so if we get some error like
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right etc..."
or something similar

that means is vulrnable to sql injection :)
 

Back
Горе