Еще ондо ср-во от инъекций... Надежно ли?

Стас

Троечник
Еще ондо ср-во от инъекций... Надежно ли?

Хочу спросить мнение знающих людей. Есть написанный сайт, который делает поиски по базам. К примеру, есть адрес:
tralala.php?id=7&sity=2&part=8
В файле tralala.php есть такой фрагмент, отвечающий за создание запроса из базы:
--
$id=$_GET['id']+0;
$sity=$_GET['sity']+0;
$part=$_GET['part']+0;
$query="SELECT fields FROM table WHERE id=$id AND sity=$sity AND part>$part";
--
Как вы считаете, он "железный"? Есть ли возможность для инъекций? Очень прошу- дайте понятный ответ, а не посылайте меня к мануалам по сабжу, типа чтобы отмазаться.
 

rembo

Новичок
SELECT fields FROM table WHERE id='$id' AND sity='$sity' AND part>'$part'

Мускулу по#$@ а скрипту приятно
 

rembo

Новичок
Это я так про метод взятия интежеров в кавычки )
Ес-сно со включенными мажик квотец
 

Sleeper

Guest
Тогда уж лучше так.
$query="SELECT fields FROM table WHERE id='".$id."' AND sity='".$sity"' AND part>'".$part."'";

Меньше заморочек будет если переменными вдруг окажутся массивы. Тем более многомерные. Да и пхп меньше напрягается.
 

rembo

Новичок
Тогда так наверное еще лучше
$query='SELECT fields FROM table WHERE id="'.$id.'" AND sity="'.$sity'" AND part>"'.$part.'"';

ПХП не будет пытаться найти переменные в строках. :)
 

McLay

PHP5 BetaTeam
Не, вы гоните. :) Лучше вот так:
"SELECT fields FROM table WHERE id='{$id}' AND sity='{$sity}' AND part>'{$part}'"
 

lucas

Guest
По-моему, пора прекращать маяться дурью.
Правильный ответ дал Romantik.
 

Demiurg

Guest
rembo, Sleeper
вы переде тем, как говорить как лучше, проверяйте, и потом думайте, стоит ли экономит на спичках.
Стас
слушай романтика, остальные флуд разводят.
 

SiMM

Новичок
Автор оригинала: rembo
SELECT fields FROM table WHERE id='$id' AND sity='$sity' AND part>'$part'
Мускулу по#$@ а скрипту приятно
Это я так про метод взятия интежеров в кавычки )
Почему скрипту это будет приятно? Фиолетово ему.
 

Sleeper

Guest
rembo, Sleeper
вы переде тем, как говорить как лучше, проверяйте, и потом думайте, стоит ли экономит на спичках.
Экономить на спичках может и не стоит, но дело в том, что если потом в запрос так же вставлять данные из многомерного массива, то придется разбираться с тем как представлять элемент многомерного массива внутри двойных кавычек, чтоб пхп его нормально понял, да и для таких массивов экономия уже не спичечная получается.
Так что лучше все же выносить переменные. Так оно, ИМХО, правильнее - потом легче будет...
 

Demiurg

Guest
Sleeper
у тебя дома есть бомбоубежище с изоляцией от радиации и запасом еды на 20 лет ?
 

Sleeper

Guest
Дома есть только сигнализация на квартире, бейсбольная бита в прихожей, тревожная кнопка и шланг, чтоб пожар тушить если что. Может в кладовке противогаз найду.
А на даче много чего есть.
И тем не менее ты хочешь сказать, что использование данных из многомерных массивов внутри строчки - это по вероятности сравнимо с тем, что на нас ядрену бомбу сбросят?
 

Demiurg

Guest
>ты хочешь сказать, что использование данных из многомерных массивов внутри строчки - это по вероятности сравнимо с тем, что на нас ядрену бомбу сбросят?
не сравнимо, но в случае ядерной бомбы ты в лучшем случае помрешь, а в случае использовании этих самых массивов в худшем случае его просьл уволят с работы.
 

desperado

Новичок
Автор оригинала: rembo
SELECT fields FROM table WHERE id='$id' AND sity='$sity' AND part>'$part'

Мускулу по#$@ а скрипту приятно
и как ему будет приятно когда кто-то из них будет равен

' OR '1'='1
 

rembo

Новичок
вложеные кавычки экранируются, читай внимательнее
 

Demiurg

Guest
desperado
ты вопрос читал ? или тебя возбудил один конкретный ответ ?
 
Сверху