SQL инъекция

I
На сайте с 07.10.2008
Offline
20
724

просмотр категории

http://mysait.ru/index.php?category=1

достаточно ли защититься от инъекции, таким путем:

$cat=intval($_GET[categoty]);

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

SELECT * FROM $db_category WHERE selector=$cat

J
На сайте с 02.02.2009
Offline
53
#1

Вполне конечно

Просто потом следите, чтобы от результатов выдачи не выдалось лишнего - если типа category=666

А вообще можно сразу делать проверку - is_numeric($GET['category']) :)

wdsg
На сайте с 09.02.2009
Offline
31
#2

Разумеется, оптимально выполнить проверку is_numeric() перед выполнением запроса. Ведь если в $_GET['categoty'] будет содержаться 'вылылыпыдысты', запрос в базу всё равно убежит. А зачем они нужны, лишние запросы?

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
E2
На сайте с 15.12.2006
Offline
128
#3
isoft:
далее, запрос

SELECT * FROM $db_category WHERE selector=$cat

А тут чего? Вопрос не дописали? Для чисел is_numeric - самый ок.

Ап! И тигры у ног моих сели.
I
На сайте с 07.10.2008
Offline
20
#4
wdsg:
Разумеется, оптимально выполнить проверку is_numeric() перед выполнением запроса. Ведь если в $_GET['categoty'] будет содержаться 'вылылыпыдысты', запрос в базу всё равно убежит. А зачем они нужны, лишние запросы?

Спасибо. Вот это действительно нужный совет для начинающего. ☝

Dreammaker
На сайте с 20.04.2006
Offline
569
#5

isoft, вот полезная ссылка по вопросу http://phpfaq.ru/slashes

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий