[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите насколько безопасно составлен запрос
GET
Тема такая, есть запрос который формируется по ходу пьесы, но до него идет формирование его хвоста, вот пример:

if (isset($_POST['pole_22']) && $_POST['pole_22']!=="не важно")
{
$sort_p22=" AND pole_22='".mysql_real_escape_string($_POST['pole_22'])."' ";
}
else
{
$sort_p22="";
}


...

далее запрос:


$z="SELECT `id`,`log`,`polet`,`polem`,`pole_11`,`pole_22`,`pole_33`,`cena`,`acena`,`1simg`,`1bimg`,`2simg`,`2bim g`,`3simg`,`3bimg` FROM `".mysql_real_escape_string ($baza)."` WHERE id='".(int)$nomer."' AND pole_m='".mysql_real_escape_string ($model)."' ".$sort_p11.$sort_p22.$sort_p33.$sort_foto.$sort_cena;
$g=mysql_query($z, $db)or die("Error:".mysql_error());


насколько это безопасно??? Можно ли в этот хвост вставить SQL инъекцию?

И еще такой вопрос, возник спор, любую ли переменную (литерную) при выводе в браузер нужно подвергать htmlspecialchars? Даже если она сгенирирована в этом же скрипте?



Спустя 26 минут, 8 секунд (27.12.2010 - 05:18) sharki написал(а):
По идее всё нормально, все данные заносятся защищенными.
Цитата
И еще такой вопрос, возник спор, любую ли переменную (литерную) при выводе в браузер нужно подвергать htmlspecialchars?


Главное понимать что ты хочешь получить в итоге, или оформленные данные вида (например)< p style="color:red"> т.е чтобы браузер разукрасил в красный цвет текст в теге P или наоборот запретить все эти действия и выведется чисто код...
Кончено же лучше подвергать shtmlspecialchars , тогда сделай BB теги, чтобы можно было делать текст не только безопасным но и красивым =))

Иногда бывает опасность искажения верстки при выводе текста без shtmlspecialchars. Т.е в базе лежит такой код <div style="float: left и т.д">текст</div> и при выводе он начнет самодействовать =)

Спустя 2 часа, 5 минут, 23 секунды (27.12.2010 - 07:23) ABC написал(а):
sharki
Спасибо, я имел ввиду...скажем задал я в скрипте
 $hi='Hello World!';
и спустя какое-то время вывожу:
print $hi;


то невозможно ведь вставить в $hi другое значение. (!?)

а вот если на этом же скрипте $hi не задается а выводится из БД в качестве скажем $hi=hie['field_1']; Я так понимаю что даже в этом случае нельзя подменить $hi, на что то другое типа <b>ZHooop</b>

Заменить $hi можно только если она пришла в скрипт из вне...либо заставить выполнить запрос БД из другой БД...или из другой таблицы...но там ведь конкретно прописано, что выбирать из поля 'field_1' таблицы Table_1 ,базы данных DataBase?

:)))???

Спустя 23 минуты, 8 секунд (27.12.2010 - 07:47) sharki написал(а):
Ну только если ты насильно не изменишь её в PHP скрипте, а потом снова запустишь скрипт с новыми данными. Интерпретатор выполняет все последовательно, как ты сможешь извне ему подсунуть то, что ему не стоит выполнять, ты же не сможешь допустим подменить доступ к БД например на этом форуме на другой адрес, т.к эти данные уже прочитались сервером, а потом выполнились.

Если ты четко указал в PHP скрипте что надо вытащить именно из этой БД, никто не сможет заменить то что ты написал с клиентской стороны.

Прочитать может и смогут какие нибудь крутые хацкеры а заменить нет, ну если ты и защиту не продумал то и заменят на другой скрипт =))

Спустя 37 минут, 13 секунд (27.12.2010 - 08:24) ABC написал(а):
sharki
Ок, спасибо! smile.gif


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.