|
|
|
| допустим есть форма:
<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];
}
.........
|
Будет ли такой запрос безопасным или необходимо ещё как-то фильтровать переменные | |
|
|
|
|
|
|
|
для: 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 и регулярные выражения), удалить лишние пробелы, проверить максимальное количество символов итд. | |
|
|
|
|
|
|
|
для: aexb
(26.09.2006 в 20:31)
| | Интересует есть ли возможность сформировать, такой запрос, который может вытащить конфеденциальные данные.
А про глобальные переменные если можно поподробнее, зачем их лучше всего отключать? | |
|
|
|
|
|
|
|
для: Dead
(26.09.2006 в 18:32)
| | Запрос будет безопасным, если содержимое переменных $name и $date будет отфильтровано. | |
|
|
|