|
Автор |
Сообщение |
Павел
Участник тусовки
Зарегистрирован: 17.02.2006 Сообщения: 110 Откуда: Санкт-Петербург
|
|
|
|
...из книги PHP5/6 и MySQL6.
На стр.592 рассматривается способ защиты от инъекций. Так вот там способ какой-то предлагается "некрасивый" на мой взгляд. Не легче ли просто обработать переменные $login и $pass функцией mysql_escape_string() и не замарачиваться? |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Почему некрасивый? Во-первых, мы там удаляем все HTML-теги и кстати во время этого можем оставить те теги, которые нам необходимы. А потом экранируем опасные символы функцией HtmlSpecialChars. Функция mysql_escape_string() экранирует только кавычки. Она полезна, когда нужно добавить в БД текст, содержащий кавычки, но не более |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Павел
Участник тусовки
Зарегистрирован: 17.02.2006 Сообщения: 110 Откуда: Санкт-Петербург
|
|
|
|
Не знаю, о каких html-тегах идет речь, но ничего в приведенном в книге коде не удаляется.
Речь шла об инъекциях, которые можно предотвратить, просто обработав get-параметры функцией mysql_escape_string. Разве не так? |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
А разве они не удаляются предложенным мною способом? |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Вот еще один способ предовтратить инъекцию, если переменная должна содержать только число, например, идентификатор объекта (статьи, файла и т.д.):
if (!is_numeric($id)) die('Попытка взлома, пошли нафиг!!!'); |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
|
|