Слепая инъекция SQL - PullRequest
       20

Слепая инъекция SQL

3 голосов
/ 25 декабря 2009

когда я использую acunetix на своей странице, я получаю: слепой SQL / XPath-инъекция

Заголовок: GET /file.php?id=2'+and+31337-31337=0+--+&page=2

Ответ:

файлы не найдены

(иногда показывает результаты)

вот мой php код:

$id = (int) htmlentities($_GET['id']);
$fileid = mysql_real_escape_string($id);

запрос:

SELECT * FROM `files` WHERE `id` = '".$fileid."'

что я делаю не так? кто-то может стереть мою базу данных только с этим? Я также получаю то же сообщение при некоторых запросах, почти равных этому, но также имеющих предел 0,1

Я использую paginator (я исправил некоторые инъекции, которые где-то в этом скрипте), но пример, который я дал, не использует его

Ответы [ 2 ]

2 голосов
/ 25 декабря 2009

Я полагаю, что Acunetix действительно глючит, кажется, вообще не существует какой-либо уязвимости SQL-инъекций.

2 голосов
/ 25 декабря 2009

Преобразование идентификатора в int уже должно предотвращать любые атаки SQL-инъекций (насколько я знаю).

$id = (int) $_GET["id"];
$Query = "SELECT * FROM files WHERE id = $id;";

file.php? Id = abcabc приведет к $ id = 0, поэтому в худшем случае вы не найдете ни одной записи, соответствующей этому идентификатору, но $ id никогда не будет содержать строку (особенно не SQL) из-за этого целого числа отбрасывать.

Надеюсь, это то, что вы хотели знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...