MySQL инъекции.
#3

Защита от инъекций нужна только тогда, когда в твоем запросе присутствуют данные, которые юзер вводит сам. Во всех остальных случаях - по желанию.
Например:
PHP код:
if(dialogid == 1234//ID диалога авторизации
{
    
format(stringsizeof(string), "SELECT * FROM `Аккаунты` WHERE `Имя` = '%s' and `Пароль` = '%s'"PlayerNameinputtext);
    
mysql_query(string);

Допустим имя игрока Johny_Smyth и он ввел такой пароль: 123123.
Сам запрос будет выглядеть так:
PHP код:
SELECT FROM `АккаунтыWHERE `Имя` =  'Johny_Smyth' and `Пароль` = '123123' 
А теперь предположим, что игрок ввел вместо пароля: 123' or '1' = '1
Теперь запрос выглядит так:
PHP код:
SELECT FROM `АккаунтыWHERE `Имя` =  'Johny_Smyth' and `Пароль` = '123' or '1' '1' 
'1' = '1' всегда вернет правду, следовательно игрок сможет зайти в аккаунт даже не зная пароля.
Тут то и пригождаются функции mysql_real_escape_string и mysql_format. (следует использовать что-то одно)
mysql_format удобнее в использовании, но в случае неправильного использования есть риск краша скрипта. Новичкам я рекомендую использовать mysql_real_escape_string. Сам синтаксис можно посмотреть в теме плагина.
Reply


Messages In This Thread
MySQL инъекции. - by Urukhay - 30.11.2013, 12:34
Re: MySQL инъекции. - by -Stranger- - 30.11.2013, 13:06
Re: MySQL инъекции. - by polander - 01.12.2013, 20:05
Re: MySQL инъекции. - by mpzila - 02.12.2013, 13:50
Re: MySQL инъекции. - by Stepashka - 02.12.2013, 16:00

Forum Jump:


Users browsing this thread: 1 Guest(s)