ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.02.2008, 14:17
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Поппробуй concat(table_name, 0x3a) заместо max(table_name)
 
Ответить с цитированием

  #2  
Старый 18.02.2008, 14:45
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Разве функция max() предназначена для строковых полей?

ЗЫ. Сорри, ступил, для них она тоже работает)

Последний раз редактировалось krypt3r; 18.02.2008 в 15:08..
 
Ответить с цитированием

  #3  
Старый 18.02.2008, 17:36
Аватар для guest3297
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

Scipio, Isis
Нечего там не фильтруеться переведи ошибку для начала.
max() - возвращает максимальное значение аргумента.
concat() - не поддерживаеться в mssql нету там такой функции.
/**/ не являються официльными коментариями в mssql при фильтрации лучше всего испоьзывать стандартные знаки типо + и табуляции в URL encode.

Цитата:
Incorrect syntax near 'from'
Не ругаеться на from, написанно что некорректный синксасис рядом/около 'from'.

Модераторы убидительная просьба почистите тему!!!


Хм, а что в теме не так? Люди обсуждают тему.
Alexsize

Последний раз редактировалось Alexsize; 18.02.2008 в 18:48..
 
Ответить с цитированием

  #4  
Старый 18.02.2008, 18:19
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Цитата:
Не ругаеться на from, написанно что некорректный синксасис рядом/около 'from'.
Я про это уже сказал и поэтому предложил заменить на /**/ хоть они и неоф.комментарии, но работает
 
Ответить с цитированием

  #5  
Старый 18.02.2008, 20:45
Аватар для Scipio
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме:
5939734

Репутация: 1917


Отправить сообщение для Scipio с помощью ICQ
По умолчанию

[ cash ], max() возвращает всего лишь одно значение, как и top 1, для использования подзапросов это как раз и надо, чтоб подзапрос возвращал однo значение, только немного с другой стороны подход, но ты всегда можешь сам попробовать и убедиться что это то что нужно и вполне равноцено (в плане получения одного только значения) использованию top 1 при sql-inj
/**/ обычный коммент и является заменой пробелу, покрайней мере в 2000 сервере точно работает, насчет concat согласен
__________________
Карфаген должен быть разрушен...

Последний раз редактировалось Scipio; 18.02.2008 в 20:55..
 
Ответить с цитированием

  #6  
Старый 19.02.2008, 11:07
Аватар для guest3297
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

Scipio
Пример приведи мне с описанием.
 
Ответить с цитированием

  #7  
Старый 19.02.2008, 12:56
Аватар для Scipio
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме:
5939734

Репутация: 1917


Отправить сообщение для Scipio с помощью ICQ
По умолчанию

Цитата:
Сообщение от [ cash ]  
Scipio
Пример приведи мне с описанием.
Ну что значит с описанием, (вобще ты сам дал описание), но я говорил про использование max() в контексте SQL-inj... насчет примеров мне не охото сейчас особо искать, вот первое что попалось, это не MSSQL а SYBASE ASE 12.05, но сам понимаешь разницы большой нет, уж на край ты и сам сможешь попробовать на mssql, пример:
Код:
http://www.radiofrance.fr/rf/documentation/dossiers/liens/?rid=convert(numeric,(select+max(dbname)+from+master..syslogins))--
Код:
http://www.radiofrance.fr/rf/documentation/dossiers/liens/?rid=convert(numeric,(select+max(dbname)+from+master..syslogins+where+dbname+not+in+(0x73796273797374656D6462)))--
__________________
Карфаген должен быть разрушен...
 
Ответить с цитированием

  #8  
Старый 19.02.2008, 11:23
Аватар для guest3297
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

Две наиболее популярные области применения функций связаны с возможнос-
тью повторного использования кода и упрощенным представлением сложных запро-
сов. Одно из основных преимуществ функций заключается в том, что вы можете ис-
пользовать их взамен программного кода, который в обычных условиях пришлось
бы писать снова и снова. Функции дают возможность компактно представить боль-
шие фрагменты кода для повторного использования. Рассмотрим простейший вари-
ант: вам необходимо, используя SQL Server, извлечь наибольшее значение столбца
Amount таблицы Sales, чтобы выяснить максимальный показатель за сутки. Если бы
не встроенные функции, нам пришлось бы прибегнуть к таким непрактичным при-
емам, как курсоры и переменные, и написать много строк кода в случае повторно-
го использования в проекте. К счастью, среди встроенных функций предусмотрена
специальная функция MAX(), пригодная для решения данной задачи. Функция MAX()
возвращает максимальное значение столбца, и ее можно использовать следующим
образом:
Код:
CREATE TABLE SALES(
                    AMOUNT   NUMERIC(5,2)
                   );
INSERT INTO SALES(AMOUNT) VALUES(100.00);
INSERT INTO SALES(AMOUNT) VALUES(1435.50);
INSERT INTO SALES(AMOUNT) VALUES(456.87);
INSERT INTO SALES(AMOUNT) VALUES(4500.00);
INSERT INTO SALES(AMOUNT) VALUES(564.55);
INSERT INTO SALES(AMOUNT) VALUES(3456.34);
SELECT MAX(AMOUNT) AS BIG_SALE FROM SALES;
BIG_SALE 
4500.00
 
Ответить с цитированием

  #9  
Старый 19.02.2008, 11:34
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

[ cash ], так правильно....выше уже сказали что max() возвращает одно значение - максимальное...

А если AMOUNT string, что выведет max?
 
Ответить с цитированием

  #10  
Старый 19.02.2008, 13:12
Аватар для guest3297
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


Exclamation

Забавно, неплохо.
Таким образом можно применять как минимум с десяток функций... тот же min().

Цитата:
2Кельт, иногда top фильтруется попробуй замени на max(table_name)
Хочу заметить что когда top или select или др. фильтруеться, не будет вывода в ошибку базы данных, так как данные отфильтровываються на уровне веб сервера а не базы. Следовательно при ошибке

Цитата:
Incorrect syntax near 'TOP'
TOP передаеться в базу без фильтра.

Последний раз редактировалось [ cash ]; 19.02.2008 в 13:18..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Os - моя крепость Elekt Избранное 32 06.08.2009 15:10
Мнения: "Безопасность от Microsoft: шаг к обновленному миру?" dinar_007 Мировые новости 5 25.12.2006 19:20
Дыра в Word позволяет захватить контроль над ПК »Atom1c« Мировые новости 17 12.12.2006 13:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ