mysql_real_escape_string -
CamperGTA - 13.08.2013
Подскажите, для чего нужно использовать mysql_real_escape_string в самп, что будет если его не использовать?
Re: mysql_real_escape_string -
stabker - 13.08.2013
Защита от SQL инъекции. Используется для фильтрации строк, вводимых пользователем.
Re: mysql_real_escape_string -
-Stranger- - 13.08.2013
Вот есть у Вас запрос такой:
PHP код:
SELECT * FROM `userinfo` WHERE `password`='%s'
А я зайду и в замен пароля передам так:
PHP код:
qqq';DROP TABLE `userinfo`;
Думаю понятно...
Re: mysql_real_escape_string -
NameNone - 13.08.2013
Quote:
Originally Posted by CamperGTA
что будет если его не использовать?
|
SQL инъекции
Re: mysql_real_escape_string -
Stepashka - 14.08.2013
Quote:
Originally Posted by -Stranger-
Вот есть у Вас запрос такой:
PHP код:
SELECT * FROM `userinfo` WHERE `password`='%s'
А я зайду и в замен пароля передам так:
PHP код:
qqq';DROP TABLE `userinfo`;
Думаю понятно...
|
и ничего не будет.
Re: mysql_real_escape_string -
CamperGTA - 14.08.2013
Возникла одна проблема, понаставил эту функцию везде(диалоги)и функция возвращает пустую строку.
пример:
PHP код:
new str[8],dest[8];
format(str,sizeof(str),"wae12sd");
mysql_real_escape_string(str, dest, cH);
printf("%s", dest); //возвращает пустую строку
Re: mysql_real_escape_string -
James_Braga - 14.08.2013
Quote:
Originally Posted by -Stranger-
Вот есть у Вас запрос такой:
PHP код:
SELECT * FROM `userinfo` WHERE `password`='%s'
А я зайду и в замен пароля передам так:
PHP код:
qqq';DROP TABLE `userinfo`;
Думаю понятно...
|
это будет выглядеть как
PHP код:
SELECT * FROM `userinfo` WHERE `password`='qqq';DROP TABLE `userinfo`;'
и да ты просто испортишь запрос в итоге вернёт пустой запрос.
Re: mysql_real_escape_string -
Stepashka - 14.08.2013
Quote:
Originally Posted by CamperGTA
Возникла одна проблема, понаставил эту функцию везде(диалоги)и функция возвращает пустую строку.
пример:
PHP код:
new str[8],dest[8];
format(str,sizeof(str),"wae12sd");
mysql_real_escape_string(str, dest, cH);
printf("%s", dest); //возвращает пустую строку
|
её надо использовать вместо
format.
Quote:
Originally Posted by James_Braga
это будет выглядеть как
PHP код:
SELECT * FROM `userinfo` WHERE `password`='qqq';DROP TABLE `userinfo`;'
и да ты просто испортишь запрос в итоге вернёт пустой запрос.
|
Вы попугайчик?
Re: mysql_real_escape_string -
CamperGTA - 14.08.2013
понял в чем дело.
я использовал так(пример):
PHP код:
enum pInfo
{
text[64];
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//----------------------------------
mysql_real_escape_string(inputtext, PlayerInfo[playerid][text]);
и исправил проблему, указав макс. длину строки:
PHP код:
mysql_real_escape_string(inputtext, PlayerInfo[playerid][text], cH, 64);
Re: mysql_real_escape_string -
stabker - 14.08.2013
pawn Код:
enum pInfo
{
text[64];
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//----------------------------------
mysql_real_escape_string(inputtext, PlayerInfo[playerid][text]);
Это явно не решение