SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.07.2011 11:40:44

popoffka
Участник
Зарегистрирован: 02.07.2011
Сообщений: 3

Безопасность MATСH ... AGAINST

Есть один проект, в котором выполняется следующий SQL-запрос:

Код:

SELECT [...] MATCH (someFields) AGAINST ("$USERINPUT")

Где $USERINPUT — ввод пользователя, в котором все символы «(» и «)» вырезаны. Насколько это безопасно? Сможет ли злоумышленник выполнить произвольную команду SELECT, INSERT или UPDATE?

Отредактированно popoffka (02.07.2011 11:40:58)

Неактивен

 

#2 02.07.2011 12:13:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Безопасность MATСH ... AGAINST

Правила общие - внутри userinput все кавычки должны быть экранированы. См. статью про SQL-инъекции

Неактивен

 

#3 02.07.2011 12:16:38

popoffka
Участник
Зарегистрирован: 02.07.2011
Сообщений: 3

Re: Безопасность MATСH ... AGAINST

Что кавычки сто́ит экранировать всегда — это понятно, но, в данном случае, внести изменение в код будет очень проблематично, поэтому меня интересует, насколько опасно текущее состояние и что сможет сделать потенциальный злоумышленник.

Неактивен

 

#4 02.07.2011 13:17:00

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Безопасность MATСH ... AGAINST

Чтобы на это ответить, приведите код php. В принципе сможет сделать все, что описано в статье. Вряд ли INSERT и UPDATE, но зависит от кода.

Неактивен

 

#5 02.07.2011 14:06:07

popoffka
Участник
Зарегистрирован: 02.07.2011
Сообщений: 3

Re: Безопасность MATСH ... AGAINST

Объясните, а как вы себе представляете подставление вообще какого-либо запроса в этот код, если вы не можете использовать скобки и, следовательно, не можете закрыть AGAINST? Или какой-то запрос можно вставить и в сам AGAINST?

Неактивен

 

#6 02.07.2011 14:22:41

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Безопасность MATСH ... AGAINST

Прошу прощения, пропустил информацию о вырезании скобок. Формально вы правы, что нельзя закрыть скобки, если они вырезаны, но я против кустарных решений - практика показывает, что если не сделать нормально, то всегда выясняются какие-то еще особенности, которые позволяют вписать туда скобки (в каком-нибудь случае). Например, тестировался ли код, если userinput содержит символы новой строки?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson