|
|
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Чем ограничена длина строки в sqlcommand.commandtext ? Дело в том, что я хочу запускать длинный batch... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 09:20 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Ничем. Это String. Только хинт я вам дам: SQL-injection еще никто не отменял, поэтому лучше используйте ХП и ее имя для CommandText ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 10:35 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Хинт верный. Интранет у меня большой. Да и вообще, скомпилированная ХП, если её правильно написать, наверное, быстрее выполняться будет, меньше данных через сеть пересылается. Так и сделаю. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 11:06 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Добавлю, что вынос логики в SP сам по себе не спасает от SQL-injection А спасает только в сочетании с грамотной политикой прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 12:32 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Alexey KudinovДобавлю, что вынос логики в SP сам по себе не спасает от SQL-injection А спасает только в сочетании с грамотной политикой прав. отвечу:) Вообще то, права хорошо, но если это не процедура CREATE Procedure str_exec @str varchar(5000) AS exec @str GO То спасает великолепно.Я по крайней мере не вижу, как можно через ХП MS SQL Server-а выполнить SQL-иньекцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:12 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
2Alexey Kudinov Говорим SQL-injection, подразумеваем права на выполнение. Думаю, что Миша в первом ответе это и имел ввиду. 2Misha 'Karn' Ivanov А @str = 'drop ...'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:20 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
2 Va1entin Во первых вы сами привели пример с Динамич. SQL А во вторых - есть еще строка подключения :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:24 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov2 Va1entin Во первых вы сами привели пример с Динамич. SQL А во вторых - есть еще строка подключения :) Извиняюсь, я хотел написать 2 Misha 'Karn' Ivanov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:26 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
2Alexey А каких неприятностей ожидать от строки подключения? Там тоже команда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:29 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
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 ...'? Этот пример я и привел как пример уязвимой ХП:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:29 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Misha 'Karn' Ivanovadadasdad' OR 1=1 Это я знаю. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:33 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Вот собственно это и формирует мое мнение: прямых SQL запросов не должно быть вообще. Если вы не можете придумать ХП для этого запроса - значит,мало думали. Это на правах имхо. Просто я однажды видел, какие чудесные вещи происходят, когда а) форум уязвим к SQL-иньекции б) форум цепляется к БД под sa вы не поверите,какая чудесная процедура xp_cmdshell ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:37 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Misha 'Karn' IvanovВот собственно это и формирует мое мнение: прямых SQL запросов не должно быть вообще. Если вы не можете придумать ХП для этого запроса - значит,мало думали. Это на правах имхо. Просто я однажды видел, какие чудесные вещи происходят, когда а) форум уязвим к SQL-иньекции б) форум цепляется к БД под sa вы не поверите,какая чудесная процедура xp_cmdshell ;-) Согласен. Добавлю (расширю), что проблема SQL иньекции - это лишь одна из проблем безопасности. Почему я и написал про права. Т.е. при создании системы необходимо ответить на вопрос - есть ли гарантия, что для работы с БД будет использоваться только ваше приложение ? Однажды пользователь обратился к нам с вопросом, что у него возникла проблема с получением списка таблиц нашей системы для Excel макроса, который он написал "в свободное от работы время " :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:53 |
|
||
|
Длина SQL команды
|
|||
|---|---|---|---|
|
#18+
Alexey Kudinov[quot Misha 'Karn' Ivanov]Однажды пользователь обратился к нам с вопросом, что у него возникла проблема с получением списка таблиц нашей системы для Excel макроса, который он написал "в свободное от работы время " :) :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 13:55 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=32874343&tid=1352973]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 312ms |

| 0 / 0 |
