[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Раз и навсегда о фильтрации
Anapalon
Ответьте, пожалуйста, достаточно ли такой фильтрации данных, чтобы защититься от sql-инъекций?


#Если числовая переменная, например, id

$id = (int)$_GET['id'] ;

#Если строковая, то
$name = $_POST['name'] ;

if (get_magic_quotes_gpc())
{
$name = stripslashes ($name) ;
}

#При занесении в базу
$result = "INSERT INTO `users` (`name`)
VALUES ('"
. mysql_real_escape_string ($name). "') " ;
$query = mysql_query ($result) ;


#А на выводе в браузер
echo htmlspecialchars ($name) ;




Спустя 3 минуты, 40 секунд (3.09.2010 - 18:05) phz написал(а):
В базу mysql_real_escape_string, на выходе в браузер htmlspecialchars - всё будет классно. Достаточно.

Спустя 1 минута, 9 секунд (3.09.2010 - 18:06) Guest написал(а):
Спасибо!

Спустя 39 секунд (3.09.2010 - 18:07) waldicom написал(а):
Цитата (phz @ 3.09.2010 - 17:05)
В базу mysql_real_escape_string, на выходе в браузер htmlspecialchars - всё будет классно. Достаточно.

Есть мнение, что этого не всегда достаточно

Спустя 1 минута, 49 секунд (3.09.2010 - 18:08) phz написал(а):
Кстати вроде у вас тема была на форуме, не успел почитать... или мне кажется что была?

Спустя 47 секунд (3.09.2010 - 18:09) Guest написал(а):
waldicom

А почему? Что ещё нужно? Моего кода достаточно?

Спустя 41 секунда (3.09.2010 - 18:10) Guest написал(а):
Не была) Я просто просил протестировать мой код регистрации, и Вы мне проетстировали, сделали замечания

Спустя 10 минут, 9 секунд (3.09.2010 - 18:20) waldicom написал(а):
Цитата (phz @ 3.09.2010 - 17:08)
Кстати вроде у вас тема была на форуме, не успел почитать... или мне кажется что была?

Да, была... Мнения разделились: один пипл утверждал, что этой функции достаточно, другой пипл утверждал, что нет. В конце концов каждый остался при своем мнении... ну уж один точно.

Спустя 4 минуты, 51 секунда (3.09.2010 - 18:25) Guest написал(а):
А ты сам как считаешь? Ведь тоже программируешь, защищаешься как-то

Спустя 7 минут, 1 секунда (3.09.2010 - 18:32) waldicom написал(а):
Цитата (Guest @ 3.09.2010 - 17:25)
А ты сам как считаешь? Ведь тоже программируешь, защищаешься как-то

Свое мнение я написал выше

Спустя 1 минута, 30 секунд (3.09.2010 - 18:33) Guest написал(а):
То есть ты считаешь, что этого недостаточно.. А что ещё нужно прописать? Подскажи

Спустя 4 минуты, 13 секунд (3.09.2010 - 18:38) waldicom написал(а):

Спустя 1 час, 1 минута, 41 секунда (3.09.2010 - 19:39) Winston написал(а):
Думаю, что лучше было бы если ты написал так:
$id = isset($_GET['id']) ? (int)$_GET['id'] : NULL;
$name = !empty($_POST['name']) ? $_POST['name'] : NULL ;

Мне кажется, что если у тебя будет просто $name = $_POST['name']; то при нажатии на кнопку вставиться пустая запись. Или я не прав ?

Спустя 2 часа, 54 минуты, 30 секунд (3.09.2010 - 22:34) Guest написал(а):
А если написать так

$name = trim ($_POST['name']) ;


то пустая запись не вставится, а потом прописать условие


if (empty ($name))
{
echo 'Введите имя' ;
}




Спустя 28 минут, 18 секунд (3.09.2010 - 23:02) Winston написал(а):
Если сделать так:
$name = !empty($_POST['name']) ? $_POST['name'] : NULL ;

То потом можно уже просто написать
if ($go && !$name)
echo 'Введите имя !';

Спустя 12 минут, 12 секунд (3.09.2010 - 23:14) Guest написал(а):
Вариантов масса))) Можно по-всякому сделать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.