Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вложить (insert, delete, update) в SELECT запрос? / 10 сообщений из 10, страница 1 из 1
04.11.2002, 13:10:59
    #32064509
Shadow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
Монстры SQL, подскажите...

Если учитывать, что никаких ограничений при составлении запроса не существует, то возможно ли в каком либо виде выполнить вложенные INSERT, UPDATE или DELETE запросы внутри SELECT запроса?

Не важно, какой длины и уровня вложенности будет конечный запрос. Главное узнать - возможно ли это вообще. Хотя бы теоретически...
...
Рейтинг: 0 / 0
04.11.2002, 13:17:30
    #32064516
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
Нельзя, я думаю.

А зачем?
...
Рейтинг: 0 / 0
04.11.2002, 13:28:28
    #32064524
Shadow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
Есть жизненная необходимость именно такого решения. Очень надо. Неважно, приминительно к какой таблице будет запрос SELECT, какой сложности и т.д.

Я не большой специалист SQL, но интуитивно могу предположить, что результаты INSERT (или UPDATE, DELETE) запросов могжно каким либо образоп привести к bool значениям (удался / не удался). Суть решения вопроса может скрываться в идеологии использования этого bool значения принаписании запроса типа:

SELECT id, name, active FROM some_table WHERE active = (INSERT INTO other_table (some_field) values (some_value));

Если учитывать, что active поле типа bool, и "INSERT INTO other_table (some_field) values (some_value)" тоже можно привести к bool, то, в принципе, идеология имеет смысл. Но это только мои догадки. Помогите, плиз.

Буду благодарен за любые подсказки и идеи...
...
Рейтинг: 0 / 0
04.11.2002, 13:32:53
    #32064529
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
Это можно сделать и двумя запросами

insert *******
if @@error <> 0 - ошибка
else select ******

Только все же непонятно: Зачем? И что же такое тогда выберет select?
...
Рейтинг: 0 / 0
04.11.2002, 13:43:37
    #32064541
Shadow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
В том то и дело, что сделать 2 запроса нет возможности. Почему - объясню ниже.

Что выберет SELECT? А неважно что он выберет. Меня интересует результат именно INSERT, DELETE or UPDATE. SELECT используется просто как "чехол" для этих целей.

А зачем все это? Хм... Я в первый раз на этом форуме, но думаю, тут некого стесьняться... Для SQL Injection. Меня очень заинтересовал этот метод взлома. Просто когда за 2 дня легко ломаются 2 крупных сайта (с полным доступом к их ресурсам) это очень возбуждает...
Да и к тому, же, я разработчик web-приложений, и изучить эту методику в совершенстве не помешало бы только для квалифицированного создания этих самых web-приложений.

Кстати, если кто нибудь из присутствующих имеет какой либо опыт в этом направлении или знает полезные ресурсы по этой теме (только не для чайников), буду благодарен.

Но вопрос остается в силе... Не выхода?
...
Рейтинг: 0 / 0
04.11.2002, 13:48:40
    #32064550
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
. Просто когда за 2 дня легко ломаются 2 крупных сайта (с полным доступом к их ресурсам) это очень возбуждает...

Женится Вам, барин, надо бы (С)
...
Рейтинг: 0 / 0
04.11.2002, 16:01:42
    #32064611
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
программа берет текстовую переменную А
и подставляет в sql строку 'SELECT * FROM table WHERE afield like ''%'+ A + '''' и выполняет метот execute.....
угу.... вот если в переменную А записать например
А='''' drop table master.dbo.sysusers'
.......... нда...
...
Рейтинг: 0 / 0
04.11.2002, 16:13:45
    #32064615
AISOFT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
Использовать вложенные insert, update и delete нельзя. Но для взлома подобной реализации, ничто не помешает при обращении создать временную глобальную хранимую процедуру и ее выполнить. Вряд ли 'разработчики' сайта проверяют тескт запроса.
...
Рейтинг: 0 / 0
04.11.2002, 16:14:27
    #32064616
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
думаю методом execute с собиранием строки на клиенте ни кто не балуется?.....
...
Рейтинг: 0 / 0
12.11.2002, 12:00:34
    #32066847
Shadow
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вложить (insert, delete, update) в SELECT запрос?
Каким образом возможно создать временную хранимую процедуру, если есть возможность выполнить ЛЮБОЙ запрос? Т.е. каким образом этот запрос должен выглядеть?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вложить (insert, delete, update) в SELECT запрос? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]