|
|
|
| Везде в статьях по САБЖ написано, что объединенные запросы должны возвращать только те столбцы где совпадают типы данных скрипта и инъекции. Но почему тогда если написать этот запрос через phpmyadmin. то там возвращается результат в любом случае, даже если не совпадают типы данных.
Вот такой пример.
Таблица login
id_user(int)
nick(varchar30)
pass(varchar30)
...
И таблица forum_theme
id_theme(int)
id_forum(int)
name_theme(text)
sign(varchar80)
...
У меня на форуме выбираются значения тем по id_forum(int).
"Select * from forum_theme where id_forum=$id_forum";
В phpmyadmin пишу:
Select * from forum_theme where id_forum=1+UNION SELECT+pass+FROM+login+where+id_user=1(для примера).
По идее это не должно сработать. Так как поле pass выбирается вместе с id_theme и типы не совпадают. Но phpmyadmin все равно возвращает нужный результат.
Последняя строка в запросе содержит pass и пустые значения остальных полей.
Почему так???
P.S. Извиняюсь за то, что не туда поместил тему. Инет че то лагает. | |
|
|
|
|
|
|
|
для: holst
(23.01.2006 в 13:01)
| | UNION вообще достаточно странная конструкция - он полностью ориентируется на первый запрос, не обращая внимание на структуру второго запроса. | |
|
|
|