Колись в молодості замутив теж свою цмску, всі ми любимо ровери винаходити
Для серйозних проектів вона не використовувалась... Для універу робив сайтики кафедр на ній. Сильно тоді не задумувався над фільтрацією тегів, і робив це так:
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;
}
Не дуже елегантно, це правда.