Ну если вам нужно:
if ($hacking_protect>1){ foreach ($_GET as $sec_key => $secvalue) { if ( (preg_match("/<[^>]*script*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*iframe*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*meta*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*style*\"?[^>]*>/", $secvalue)) || (preg_match("/<[^>]*form*\"?[^>]*>/", $secvalue)) || (preg_match("/<[^>]*img*\"?[^>]*>/", $secvalue)) || (preg_match("/<[^>]*onmouseover*\"?[^>]*>/", $secvalue)) || (preg_match("/<[^>]*onclick*\"?[^>]*>/i", $secvalue)) || (preg_match("/\([^>]*\"?[^)]*\)/i", $secvalue)) ||// (preg_match("/\'/i", $secvalue))|| (preg_match("/\"/i", $secvalue))) { foreach ($_GET as $key=>$value){ $temp_post .= "[$key] > [$value]"; } //print_r($_POST); mqf("INSERT INTO `{$tb_prefix}_hack` (`id`, `vars`, `ip`, `user`, `referal`) VALUES (NULL, '$temp_post', '$_SERVER[REMOTE_ADDR]', '$_COOKIE[$cookie_name]','$_SERVER[HTTP_REFERER]');"); die ("<html><head><title>What are you doing?</title><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=UTF-8\"></head><body><center> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br><br><b>What are you doing? Dont do this again ;)<br />IP: $_SERVER[REMOTE_ADDR]<br />$sec_key $secvalue</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>Back</b></a> ]"); exit(); } } foreach ($_POST as $secvalue) { if ((preg_match("/<[^>]*onmouseover*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*onclick*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*script*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*iframe*\"?[^>]*>/i", $secvalue) and !preg_match("/<[^>]*iframe( )src=\"http:\\/\\/vk\\.com\\/video_ext\\.php*\"?[^>]*>/i", $secvalue) )) { foreach ($_POST as $key=>$value) { $temp_post .= "[$key] > [$value]"; } //print_r($_POST); mqf("INSERT INTO `{$tb_prefix}_hack` (`id`, `vars`, `ip`, `user`, `referal`) VALUES (NULL, '$temp_post', '$_SERVER[REMOTE_ADDR]', '$_COOKIE[$cookie_name]','$_SERVER[HTTP_REFERER]');"); die ("<html><head><title>WTF</title> <META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\"></head> <body><center> <br><br><b>"._("HTML-теги которые вы собираетесь использовать, нельзя использовать на этом сайте ;)")."</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>".("Назад")."</b></a> ]"); exit(); } }}if ($hacking_protect>0){ foreach ($_POST as $key => $value) { if (is_array($_POST[$key])){ foreach ($_POST[$key] as $key2 => $value2){ $_POST[$key][$key2] = addslashes($_POST[$key][$key2]); } } else{ $_POST[$key] = addslashes($_POST[$key]); } } foreach ($_GET as $key => $value) { $_GET[$key] = addslashes($_GET[$key]); } foreach ($_COOKIE as $key => $value) { $_COOKIE[$key] = addslashes($_COOKIE[$key]); } }
Функция strip_tags используется в каждом конкретном случае отдельно. Для JS редактора, например, так:
$parsed_text = strip_tags($_POST[text], "<br><p><img><td><tr><table><tbody><div><ul><em><li><ol><b><strong><u><i><font><h1><h2><h3><h4><h5><h6><h7><pre>");
onclick и onmouseover не засунешь, поскольку это фильтруется на более высоком уровне.
Надо запретить пост iframe кроме содержащих определёный src.
Понятное дело, я же не выложу тут весь код обработки POST и GET запросов. Выложил только нужный кусочек. Кроме того надо вести лог кто такие запросы делает, на случай если придётся банить по IP самых злых.
TF-Studio
Весь вводимый текст от пользователей обрабатывается через strip_tags, с перечнем допустимых тегов, но уже после обработки общим парсером. На сайте также используется текстовый редактор, и другие приблуды JS-AJAX. Общая обработка нужна чтобы не заморачиваться с каждым скриптом где нужна проверка (их более трёх десятков на сайте).
Форма для добавления комментария должна быть простой, без "дополнительных полей для видео", потому только так. Ссылку VK не даёт, чтобы встроить видео надо получить код с уникальным хешем.
RiDDi, это может сработать, спасибо, буду ковырять.
bums, сервис располагает к тому, чтобы пользователи делились своими видео фалами.
RiDDi
Да, вы правы, как же добавить "<" в начале регулярки?
установите репозиторий remi читайте тут для своей ОС
http://blog.famillecollet.com/pages/Config-en
а потом сделайте
yum install php-fpm
spawn-fcgi это ведь модуль lighthttp?
Установите php-fpm и не мучайтесь
Поройтесь в конфигах, найдите
PHP_FCGI_MAX_REQUESTS
и поставьте 0 или увеличьте значение до приемлемого.
почему нельзя запустить php-cgi как демон? И почему не php-fpm?
Пожалуйста, задавая вопрос пишите свою ОС и версии установленного ПО, по крайней мере того, о котором спрашиваете.
Тут есть нюансы, если у вас один процессор, но четырёхядерный, вы платите как за два процессора. То есть каждое ядро считается по 0.5 стоимости. Подробнее тут: http://www.westlogic.ru/Licensing/Oracle_lic.php
Если у вас программа использует только один логин-пароль для всех БД, то вам можно купить лицуху на одного пользователя. Но раз вы говорите, что у вас и так полноценная версия, а не фришная, и деньги не ушли в карман вашим предшественикам, то такой вариант апдейта явно не поможет. Смотрите в сторону увеличения RAM, конфигурирования кеша запросов и покупки дополнительного внешнего хранилища и рапределения нагрузки. Увеличить производительность 4x146GB 15K rpm в raid 10 не представляется возможным и вряд ли вам предложат что-то более производительное с бюджетом до 10К долларов. В конце концов, скорость работы любого диска ограничивается ещё контроллером и шиной передачи данных.