Добрый вечер. Недавно заинтересовался SQL-инъекциями. Я ещё новичок. Сильно не бейте. Взял сайт на пробу site.ru Если зайти в раздел "Новости", то там у каждой статьи есть кнопки Нравится/Не нравится. При нажатии на Не нравится появляется ссылка site.ru/?menu=news&id_ans=9&rating=dislike. Если немного подкорректировать запрос и после id_ans ввести любое слово, то вылезает ошибка. Пример: site.ru/?menu=news&id_ans=пр You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , 0)' at line 1 А вот что дальше делать не знаю. Если ввести после знака id_ans= SELECT * FROM name, то выдаёт ту же ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , 0)' at line 1 Возможно будет полезно. На странице всего 9 новостей. Если поставить в этом коде http://site.ru/?menu=news&id_ans=9&rating=dislike вместо 9 любое число от 1-9, то напишет, что одну новость нельзя оценивать дважды. Если поставить больше 9, то напишет, что оценка принята и запомнит это. Больше оценивать новость №90 я не смогу (даже если такой ещё нет). p.s. Прошу прощения, если коряво описал задачу . Говорите что не понятно, постараюсь объяснить, если смогу. Кстати сервер работает на Apache 2.2.22. Сайт c PHP 5 и MySQL (не знаю какой версии)
дай валидный запрос серверу через sql/ он те6е отвечает ощи6кой потому_что ему нечего те6е "сказать". или попро6уй дать ему истинное условие и после через кавычки или про6ел_ а можно всё вместе запросить то_что те6я интересует
Валидный- зависит от того что ты хочешь получить. SELECT * FROM `members` WHERE name = '$name' AND password ='$password' Слово SELECT в SQL-запросе показывает_какие данные нужно получить. Например_ можно было бы указать SELECT name_ или SELECT name_ password. - если ты введешь SELECT * FROM name то это ничего не даст так как ты говоришь - "широта_ долгота"_ те6е нужно написать - "111_ 111" тогда может 6ыть получишь ответ. в зависимости как реагирует на запрос сайт например - 'лол' --+ ' AND password ='111' в оперделённое место иначе у те6е вернёт ощи6ку. если ты 6удеш вводить эти данный в логин/ пароль те6я ли6о впустит в личку ли6о скажет не верный логин или пароль SELECT * FROM `members` WHERE name = 'Demo' --+ ' AND password ='111' ЗЫ если ты введёшь команду типо id_ans= SELECT * FROM где "id_ans" строчка которая принимает команду тогда те6е выдаст ощи6ку так как. какая вооще у строчки может 6ыть "широта долгота". широту долготу ты пожешь получить восползовщись этоя строчкой в которуу ты введёшь команду. она о6ра6отается и тогда ты получишь ответ. конечно если ты указал команду которуу сервер поймёт и пропустит на выполнение_ если он "сла6ый"