powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Длина SQL команды
15 сообщений из 15, страница 1 из 1
Длина SQL команды
    #32873726
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем ограничена длина строки в sqlcommand.commandtext ?
Дело в том, что я хочу запускать длинный batch...
...
Рейтинг: 0 / 0
Длина SQL команды
    #32873904
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничем. Это String. Только хинт я вам дам: SQL-injection еще никто не отменял, поэтому лучше используйте ХП и ее имя для CommandText
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874030
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хинт верный. Интранет у меня большой.
Да и вообще, скомпилированная ХП,
если её правильно написать,
наверное, быстрее выполняться будет,
меньше данных через сеть пересылается.
Так и сделаю.
Спасибо.
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874343
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю, что вынос логики в SP сам по себе не спасает от SQL-injection
А спасает только в сочетании с грамотной политикой прав.
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874519
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey KudinovДобавлю, что вынос логики в SP сам по себе не спасает от SQL-injection
А спасает только в сочетании с грамотной политикой прав.


отвечу:) Вообще то, права хорошо, но если это не процедура

CREATE Procedure str_exec
@str varchar(5000)
AS
exec @str
GO

То спасает великолепно.Я по крайней мере не вижу, как можно через ХП MS SQL Server-а выполнить SQL-иньекцию
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874552
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alexey Kudinov
Говорим SQL-injection, подразумеваем права на выполнение.
Думаю, что Миша в первом ответе это и имел ввиду.

2Misha 'Karn' Ivanov
А @str = 'drop ...'?
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874578
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Va1entin
Во первых вы сами привели пример с Динамич. SQL
А во вторых - есть еще строка подключения :)
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874585
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov2 Va1entin
Во первых вы сами привели пример с Динамич. SQL
А во вторых - есть еще строка подключения :) Извиняюсь, я хотел написать 2 Misha 'Karn' Ivanov
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874599
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alexey

А каких неприятностей ожидать от строки подключения?
Там тоже команда?
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874603
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Va1entin2Alexey Kudinov
Говорим SQL-injection, подразумеваем права на выполнение.
Думаю, что Миша в первом ответе это и имел ввиду.


Нет,я имел ввиду не это. Я имел ввиду что если у вас процедура авторизации имеет вид:

Create Procedure Authorize
@Login varchar(50),
@Pass varchar(50)
AS
select * from LoginPassword where Login=@Login AND [Password]=@Pass
GO

И вы ее вызываете так:
SqlCommand cmdAuth = new SqlCommand(this._sqlConn);
cmdAuth.CommandText = "Authorize";
cmdAuth.CommandType = CommandType.StoredProcedure;
cmdAuth.Parameters.Add("@Login", SqlDbType.varchar).Value = tbxLogin.Text;
cmdAuth.Parameters.Add("@Pass", SqldbType.varchar).Value = tbxPass.Text;
SqlDataReader dr = cmdAuth.ExecuteReader();
dr.read();
//нет записей если неверные логин пароль

то все нормально и спокойно. А если вы делаете так:
SqlCommand cmdAuth = new SqlCommand(this._sqlConn);
cmdAuth.CommandText = "select * from LoginPassword where Login='"
+ tbxLogin.Text +"' AND [Password]='" + tbxPass.Text +"'";
cmdAuth.CommandType = CommandType.Text;
SqlDataReader dr = cmdAuth.ExecuteReader();
dr.read();

то вроде тоже все пучком. Но если в tbxPass введут такой текст:
adadasdad' OR 1=1 --
То ваша команда выполнится всегда успешно. Вот это и есть SQL-иньекция и именно ее я и имел ввиду.






Va1entin
2Misha 'Karn' Ivanov
А @str = 'drop ...'?

Этот пример я и привел как пример уязвимой ХП:)
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874621
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha 'Karn' Ivanovadadasdad' OR 1=1
Это я знаю. Спасибо.
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874646
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот собственно это и формирует мое мнение: прямых SQL запросов не должно быть вообще. Если вы не можете придумать ХП для этого запроса - значит,мало думали. Это на правах имхо. Просто я однажды видел,
какие чудесные вещи происходят, когда
а) форум уязвим к SQL-иньекции
б) форум цепляется к БД под sa
вы не поверите,какая чудесная процедура xp_cmdshell ;-)
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874701
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha 'Karn' IvanovВот собственно это и формирует мое мнение: прямых SQL запросов не должно быть вообще. Если вы не можете придумать ХП для этого запроса - значит,мало думали. Это на правах имхо. Просто я однажды видел,
какие чудесные вещи происходят, когда
а) форум уязвим к SQL-иньекции
б) форум цепляется к БД под sa
вы не поверите,какая чудесная процедура xp_cmdshell ;-) Согласен. Добавлю (расширю), что проблема SQL иньекции - это лишь одна из проблем безопасности. Почему я и написал про права. Т.е. при создании системы необходимо ответить на вопрос - есть ли гарантия, что для работы с БД будет использоваться только ваше приложение ?

Однажды пользователь обратился к нам с вопросом, что у него возникла проблема с получением списка таблиц нашей системы для Excel макроса, который он написал "в свободное от работы время " :)
...
Рейтинг: 0 / 0
Длина SQL команды
    #32874711
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Kudinov[quot Misha 'Karn' Ivanov]Однажды пользователь обратился к нам с вопросом, что у него возникла проблема с получением списка таблиц нашей системы для Excel макроса, который он написал "в свободное от работы время " :)

:-))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Длина SQL команды
    #34291173
parovoZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, что поднял этот хлам((

Если делать всё через хранимки, тогда кого делать владельцем таблиц? Всё того же dbo? И надо ли указывать в хп владельца таблицы?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Длина SQL команды
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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