Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Пара вопросов по $var (Antares) 25/05/2004 - 17:53:55
      Re: Re: Пара вопросов по $var (dip) 25/05/2004 - 18:14:46
      Re: Re: Пара вопросов по $var (haron) 25/05/2004 - 19:03:53
      Re: Re: Пара вопросов по $var (Antares) 25/05/2004 - 23:46:23
      Re: Re: Пара вопросов по $var (Antares) 25/05/2004 - 23:49:08

> Original message text:
> From: Antares - 25/05/2004 - 17:53:55
> Subject:Пара вопросов по $var
> -----------------
> Какой вариант правильный?
>
> 1. mysql_query("SELECT * FROM tab WHERE user = $username");
> 2. mysql_query("SELECT * FROM tab WHERE user = ".$username." ");
>
> И еще:
>
> 1. mysql_query("SELECT * FROM tab WHERE $user = "werw" ");
> 2. mysql_query("SELECT * FROM tab WHERE ".$user." = "werw" ");
>
> ?
>


From: dip - 25/05/2004 - 18:14:46
Subject:Re: Пара вопросов по $var
-----------------
На Perl существует такая функция как quote. Она экранирует все "нехорошие" символы и результат заключает в апострофы (или кавычки, гуру поправьте).
Её использование практически исключает так называемые sql-иньекции, опять же если не прав, поправьте.

На Perl самым правильным было бы:
1. $dbh->query("select * from tab where user=".$dbh->quote($username));
При $username = "vasya" запрос будет следующим:
select * from tab where user='vasya'
При $username="vasya');delete from test;" запрос будет таким:
select * from tab where user='vasya');delete from test;'
и благополучно убьет таблицу.
А с использованием quote усё нормально:
select * from tab where user='vasya\');delete from test;'


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15126



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |