![]() |
filter и filter nohtml
Возник вопрос, касайющийся оптимизации, но его осуществимость зависит от безопастности.
Фильтр переменных. $text=filter($text); Нужен ли он, при выводе данных из базы? При записи, а особенно от посетителей - необходим. Даже через админ панель пусть будет. А при выводе? И еще фильтр для заголовков: $text=filter($text, "nohtml"); Чем он лучше: $title = strip_tags($title); ? Просто разница в 50-100раз по нагрузке (при проводе 1 слова 10.000раз): С параметром nohtml: Генерация страницы: 16.86 Генерация страницы: 17.05 Просто фильтр: Генерация страницы: 9.197 Генерация страницы: 8.201 Без фильтра или с strip_tags: Генерация страницы: 0.177 Генерация страницы: 0.147 Просто запросы в БД идут быстро, а генерация страницы - 0.1 до 0.4 сек. (это на 1 пользователя). Удалив фильтры, можно уменьшить раза в 2-5 пачти (особенно при выводе больших листингов заголовков). Но конечно безопасность важнее :) Поэтому вопрос задал в этой теме. |
По идее, если запись html тэгов невозможна даже в кодированом варианте - тогда можно и убрать...
|
фильтрация при выводе не обязательна, но так как php-nuke дырявая и если злоумышленнику удастся скажем добавить в БД XSS код, то хоть при выводе его на экран он будет обезврежен, если конечно правильно фильтр будет применен.
А если делать все по уму и четко отслеживать переменные, то от этой фильтрации можно отказаться |
Меняю сейчас все:
$title = filter($row['parent'], "nohtml"); на $title = strip_tags(htmlspecialchars($row['title'])); Быстрее работает :) |
если Post код вдолбят - обидно будет сайт терять.... а намного быстрей? может тоже переделаю:)
|
Alie
Если фильтр используется чаще 20-30 раз, то смысл есть. Секунды 0.1 точно выйграешь. (у меня было, 0.30, стало 0.15-0.2) К примеру вывод заголовков новостей (штук 50 их на странице). Вывод новостей. (10 новостей+10разделов+10категорий+10авторов и т.д.) - тож много получается. |
Часовой пояс GMT +4, время: 15:40. |
Copyright © 2005 by Soniks