Как да забраня " ' " в address bar

h4x0r

Registered
Здравейте,някой знае ли как мога да забраня " ' " да се поставя в адрес бар-а ... Да не може да се SQLi.

пример
sait.com/index.php?page=str1 това е страницата..

sait.com/index.php?page=str1' да ги праща да кажем в 404 error
 
направи си един файл .htaccess и в него сложи

ErrorDocument 404 /notfound.html


като на мястото на notfound.html сложи страницата в която да те препраща
 
http://web-tourist.net/forum/viewtopic.php?t=83500

nom3r1 каза:
Атака: SQL Injection (SQLi)

Начин на изпълнение:
Преди всичко , ако в сайта ни имаме;
http://site.bg/view.php?id=3

Трябва да го проверим дали е уязвим към SQLi , RFI, LFI and etc.. за да го проверим ще използваме '

Например:
http://site.bg/view.php?id=3'

Ако даде грешка подобна на:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in......

Ето един пример:
Код:
http://alexsoft.net/category.php?c=7'

MySQL Version:
Код:
http://alexsoft.net/category.php?c=-7+union+select+1,2,@@version,4--

4.1.22-standard-log


http://site.bg/view.php?id=-1+union+select+1,2,3,@@version,5--

По този начин ще изкара версията на MySQL.. може доста по-големи неща да се изкара..

Начин на защита: Ако използвате в id-то само числа най-добре да използвате int() при вземане на ID-то..
например:

Код:
$id = int($_GET['id']);
$query = "SELECT * FROM test_table WHERE id=$id";

Препоръка: Не използвайте заявки като;
Код:
$query = "SELECT * FROM test_table WHERE  id= $_GET['id']";

Защото може да станете жертва на някой "хакер"..

Другото , което искам да кажа е, че дори и да имате пълна защита на сайта ви.. отново може да бъдете пробите , ако хостинг компанията е "бъгава".. :?:


Повече информация (en): http://en.wikipedia.org/wiki/SQL_injection
 
Код:
<?
$page=htmlspecialchars(addslashes($_GET['page']));
$preg=preg_match('/\'|\-/', $page);
if ($preg)
{
echo "bad";
}
else
{
//кода ..
}
?>
 
Ами слагай го най-отгоре на страница, че веднага като зареди да минава през този код :)
 

Back
Горе