#php
$b= $_GET['b'];
mysql_query("INSERT INTO `menu` (`id`,`parent_id`,`title`,`href`,`cat`) VALUES (".$b.")");
Этот топик читают: Гость
Ответов: 327
Рейтинг: 5
|
|||
вот GET запрос : ?a='2','2','prist','#lich-prist','all_group_lich' если его изменить на ?a='2','2','prist','lich-prist','all_group_lich' то есть убрать #, то проблема исчезает. Вот php код :
|
|||
карма: 0 |
|
Google
vip
|
#1.1контекстная реклама от партнеров
|
Ответов: 4621
Рейтинг: 746
|
|||
А при вводе запроса в браузере символ "#" экранировал? Типа такого: '%23lich-prist'
|
|||
карма: 26 |
|
Ответов: 498
Рейтинг: 39
|
|||
knoot0279, всегда нужно экранировать получены данные перед запросом в базу. mysql_real_escape_string()
------------ Дoбавленo в 18.39: В таком виде это дыра в безопасности, можно что угодно сделать с базой, а с неверными настройками и правами ещё и с сервером. |
|||
карма: 0 |
|
Ответов: 327
Рейтинг: 5
|
|||
Muz-Tv писал(а): можно что угодно сделать с базойКаким образом? ------------ Дoбавленo в 18.53: И еще... Есть список разрешенных ip адресов, только если отправлять запросы с этих ip, то можно продолжить выполнение скрипта. Насколько это надежно? IP беру из $_SERVER['REMOTE_ADDR'] |
|||
карма: 0 |
|
Ответов: 498
Рейтинг: 39
|
|||
knoot0279, sql injection.
|
|||
карма: 0 |
|
Ответов: 327
Рейтинг: 5
|
|||
О какой инъекции идет речь, если единственный непостоянный параметр здесь это "$b".
Можно подменить "INSERT"? `menu`? И как можно подменить переменную $b таким образом, чтобы получить доступ, например, к списку пользователей с логинами и паролями? |
|||
карма: 0 |
|
Ответов: 498
Рейтинг: 39
|
|||
knoot0279, "подменить" можно, смотри union.
|
|||
карма: 0 |
|
Разработчик
Ответов: 4697
Рейтинг: 426
|
|||
knoot0279, вот так можно почистить всю базу:
www.site.net/page.php?b=0,0,',',0); DELETE FROM users WHERE 1 = (1 Только перевести это надо в URL (проэкранировать пробелы и другие символы). |
|||
карма: 10 |
|
Ответов: 327
Рейтинг: 5
|
|||
Assasin писал(а): Хватит мне и так уже страшно... mysql_query('SELECT * FROM `main`') - надеюсь это безопасно? здесь ничего исправлять не нужно? ------------ Дoбавленo в 00.53: И еще... насколько безопасными становятся все действия после проверки ip(идет проверка на мой статический адрес if($_SERVER['REMOTE_ADDR'] != 'мой ip') {exit('Access denied');}, конечно проверку применяю только на страницах, где доступ должен получить только я) Вот это у меня получилось следуя совету Muz-Tv, теперь можно считать запрос безопасным?
|
|||
карма: 0 |
|
Ответов: 498
Рейтинг: 39
|
|||
knoot0279 писал(а): насколько безопасными становятся все действия после проверки ip(идет проверка на мой статический адресif($_SERVER['REMOTE_ADDR'] != 'мой ip') {exit('Access denied');}, REMOTE_ADDR нельзя подменить. knoot0279 писал(а): теперь можно считать запрос безопасным?Да. |
|||
карма: 0 |
|
Ответов: 327
Рейтинг: 5
|
|||
спасибо
------------ Дoбавленo в 00.58: Я правильно понимаю что беспокоиться стоит только при GET и POST запросах? Ну, например есть переменная $date = date('Y')... Вот запрос : SELECT title FROM posts WHERE date='$date' Так тоже будет безопасно или же есть риск? |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
knoot0279, любые данные, приходящие от пользователя, надо фильтровать. Данные, к которым пользователь не имел доступа - не надо.
|
|||
карма: 1 |
|
Ответов: 327
Рейтинг: 5
|
|||
спасибо
|
|||
карма: 0 |
|
13