Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: htmlspecialchars и mysql_escape_string
Ввожу в строку формы <html> select * from isse_comments where id= 'admin'
И на выходе получается:
<html> select * from isse_comments where id= \'admin\'
Вопрос: почему в первом случае много слешей, и стоит ли использовать функцию mysql_escape_string совместно с htmlspecialchars? И вообще стоит ли её использовать, если она делает столько слешей? (ведь для экранизации в БД нужен хотя бы один?)
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
White
Отправлено: 08 Октября, 2011 - 18:26:14
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
snikers987mysql_real_escape_string() для экранирования спецсимволов sql, htmlspecialchars() при втором аргументе ENT_QUOTES также заэкранирует все эти символы. а делается это не для защиты от инъекций, а для записи текстовых строк содержащих эти символы в БД, и если текстовая строка - html документ, то лучше использовать htmlspecialchars(). от инъекций это конечно спасает, но это не основное их предназначение.
----- if(time()>1356048000) die();
snikers987
Отправлено: 08 Октября, 2011 - 18:31:28
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
White, читай пост ТС . Он там ясно выразился что он хочет. И для чего нужна htmlspecialchars() мне известно.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Itan
Отправлено: 08 Октября, 2011 - 18:43:49
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
snikers987 ты если не понимаешь, о чем речь, так не надо засорять тут тему. Почитай для начала описание этих двух функций. И их прописал не только для защиты от инъекций, но и от html-кода, в частности от встраивания js-скриптов. Чтобы они не записывались в бд.
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
snikers987 это к тому, что защититься от инъекций можно и с помощью htmlspecialchars(), если не забывать брать значения в кавычки. а ТС явно не понимает что и зачем он делает, для этого я и расписал зачем нужна каждая из этих функций.
----- if(time()>1356048000) die();
snikers987
Отправлено: 08 Октября, 2011 - 19:00:54
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Itan пишет:
snikers987 но и от html-кода, в частности от встраивания js-скриптов. Чтобы они не записывались в бд.
а ты уверен что ты сам вообще что то понимаешь? удаление из строки тегов с помощью htmlspecialchars() o_O
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Itan
Отправлено: 08 Октября, 2011 - 19:01:10
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
Значит,. для защиты одновременно и от инъекции и от тегов поможет htmlspecialchars? Получается, можно не использовать mysql_escape_string? (Добавление)
snikers987 пишет:
а ты уверен что ты сам вообще что то понимаешь? удаление из строки тегов с помощью htmlspecialchars() o_O
лол... htmlspecialchars -- Преобразует специальные символы в HTML сущности
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Слешей много потому что включен magic_quotes. А остальное вроде вы сами разобрались.
Лучше, просто в порядке хорошего тона, всё, что предназначено для запросов прогонять через escape_string (или пользоваться препарированными запросами). Для "защиты от тэгов", как Вы это назвали - specialchars. А спешлчарить до вставки в БД или после - наверное Вам виднее
White
Отправлено: 08 Октября, 2011 - 21:13:10
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
Itan html инъекция это вообще ужас. но еще хуже css инъекция или text инъекция, от всех этих видов прекрасно спасает
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.