Наше Місто Івано-Франківськ - Форум
Привіт, Гість
( Вхід | Реєстрація )
 
Форум Блоги Анонси Статті Погода Пошук Галерея Карта Довідка Транспорт
 
   Відповісти   Створити нову тему
> Розумна фільтрація HTML, HTML, PHP, DB
Scary
повідомлення 20.3.2009, 6:47
Порядковий номер повідомлення #1

Never say never...


Хто: Мешканець
Повідомлень: 542
З нами з: 10.10.2008
Мешканець №: 343
Подякували: 70 раз



Недавно сидів n-раз щось міня/допусував/переписував в свому ЦМС і от виникла потреба підправити фільтр HTML тагів (для чого і чому думаю пояснювати не треба), рішень є багато (strip_tags, htmlentities, preg_replace і інші), а як Ви фільтрите непотрібні таги і лишаєте потрібні?
 
Majesty
повідомлення 20.3.2009, 9:10
Порядковий номер повідомлення #2

Драконоподібний мамонт


Хто: Технічний відділ
Повідомлень: 1486
З нами з: 21.9.2007
З: Франик
Мешканець №: 4
Подякували: 161 раз



Колись в молодості замутив теж свою цмску, всі ми любимо ровери винаходити rolleyes.gif Для серйозних проектів вона не використовувалась... Для універу робив сайтики кафедр на ній. Сильно тоді не задумувався над фільтрацією тегів, і робив це так:

CODE
foreach ($_GET as $var => $secvalue) {
if ((eregi ("<[^>]*script*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*object*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*iframe*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*applet*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*meta*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*style*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*form*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*img*\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*onmouseover*\"?[^>]*>", $secvalue)) ||
(eregi ("\([^>]*\"?[^)]*\)", $secvalue)) ||
(eregi ("\"", $secvalue))) {
eror (_BADYOURCODE);
exit;
}
}
foreach ($_POST as $secvalue) {
if ((eregi ("<[^>]*script *\"?[^>]*>", $secvalue)) ||
(eregi ("<[^>]*style*\"?[^>]*>", $secvalue))) {
eror (_BADYOURCODE);
exit;
}
}
$queryString = strtolower ($_SERVER['QUERY_STRING']);
if (strpos($queryString,'%20union%20') OR strpos ($queryString,'/*') OR strpos($queryString,'*/union/*') OR strpos($queryString,'c2nyaxb0')) {
eror (_BADYOURCODE);
exit;
}


Не дуже елегантно, це правда. dry.gif
 

   Відповісти   Створити нову тему

 
RSS Текстова версія форуму; Котра година: 26.4.2024, 12:19