Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск при помощи оператора LIKE
 
 автор: Dead   (26.09.2006 в 18:32)   письмо автору
 
 

допустим есть форма:


<form name='forma' method='post' action='search.php'>
<input type='text' name='name'>
<input type='text' name='date'>
<input type='submit' value='ПОИСК'>
</form>


Далее сам search.php


.........
$fig = ("SELECT * FROM table WHERE name LIKE '%$name%' AND date LIKE '%$date%'");
$kar=mysql_query($fig);
while($row = mysql_fetch_array($kar))
     {
       $id=$row[id];
       $name=$row[name];
    }
.........


Будет ли такой запрос безопасным или необходимо ещё как-то фильтровать переменные

   
 
 автор: aexb   (26.09.2006 в 20:31)   письмо автору
 
   для: Dead   (26.09.2006 в 18:32)
 

1) Если есть доступ к редактированию .htaccess, то нужно отключить глобальные переменные и обращаться к переменным, полученным методом POST напрямую. Например, $_POST['name'] и $_POST['date']. То есть, запрос будет выглядеть приблизительно так:

$kar=mysql_query("SELECT * FROM `table` WHERE `name` LIKE '%".$_POST['name']."%' AND `date` LIKE '%".$_POST['date']."%'");


2) Хорошо бы обработать переменные на наличие запрещенных символов (тут подключается JavaScript и регулярные выражения), удалить лишние пробелы, проверить максимальное количество символов итд.

   
 
 автор: Dead   (26.09.2006 в 23:27)   письмо автору
 
   для: aexb   (26.09.2006 в 20:31)
 

Интересует есть ли возможность сформировать, такой запрос, который может вытащить конфеденциальные данные.
А про глобальные переменные если можно поподробнее, зачем их лучше всего отключать?

   
 
 автор: cheops   (26.09.2006 в 23:31)   письмо автору
 
   для: Dead   (26.09.2006 в 18:32)
 

Запрос будет безопасным, если содержимое переменных $name и $date будет отфильтровано.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования