Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> защита post и get от sql-injection и другого.... 
:(
    Опции темы
phpsc
Дата 22.11.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

Репутация: нет
Всего: 0



Код


function quote_smart($value){
    
    $value=stripslashes($value);
    
    if (is_numeric($value)) {
        $value="'".mysql_real_escape_string($value)."'";
    }
    return $value;
}
$post_user=quote_smart($_POST['login']);
    # Вытаскиваем из БД запись, у которой логин равняеться введенному
    $query_str = sprintf("SELECT id, pass FROM user WHERE login='".$post_user."' LIMIT 1");
    $query=mysql_query($query_str);
    if (!$query) die("Нет соединения с MySQL2");
    $data = mysql_fetch_assoc($query);


 что еще можно добавить?

Это сообщение отредактировал(а) phpsc - 22.11.2010, 15:44
--------------------
Социальная сеть
PM MAIL   Вверх
bars80080
Дата 22.11.2010, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



не понятна логика. зачем кавычки для числовых значений?

по сути должно быть:

Код

function quote_smart($value){
    
    $value=stripslashes($value); // только если включена magic_quotes
    $value=mysql_real_escape_string($value);
    return $value;
}


но magic_quotes надо изначально отрубать ещё на уровне сервера, чтобы не было лишних телодвижений.
таким образом функция вырождается в 

function quote_smart($value){
    
    $value=mysql_real_escape_string($value);
    return $value;
}

то есть mysql_real_escape_string($value);


PM MAIL WWW   Вверх
phpsc
Дата 22.11.2010, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010

Репутация: нет
Всего: 0



Спасибо за ответ.
Собственно возникает вопрос,
а не лучше ли сделать проверки через регулярные выражения?
Так ведь и по нагрузке меньше получится, т.к. меньше "левых" запросов будет посылаться в БД.
--------------------
Социальная сеть
PM MAIL   Вверх
bars80080
Дата 22.11.2010, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



Цитата(phpsc @  22.11.2010,  15:44 Найти цитируемый пост)
а не лучше ли сделать проверки через регулярные выражения?

тут не понятно зачем вообще что-то искать

почему в запросе не должно быть неких символов?

к примеру, я понимаю, если вводится проверка для почтового ящика, там есть строгие стандарты адреса. а в общем случае зачем что-то искать или вырезать? разве логин не может содержать всякие нечитаемые символы?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.