Фильтрация входных данных

Тема в разделе ".:: Уязвимости", создана пользователем CrashX, 2 ноя 2010.

Статус темы:
Закрыта.
  1. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    тк раньше я использовал BBCode проблем не было
    но после смены на wysiwyg редактор
    а именно jWYSIWYG мал, быстр, хорош, функционален.
    а теперь о защите раньше все содилось к простым правилам фильтрации данных, и парсингу на ББКоды
    теперь тк есть редактор нужно подумать о защите от XSS и инъекций


    какие классы, фильтры, регулярные выражения, функции можете по рекомендовать...

    интересует все... от а до я
     
  2. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    пример реализации

    Код:
    class check
         {
          public function textareaClear($string) // Многостроковые текстовые поля  без перекодировки
                {
                 (string)$this->string=$string;
                 $this->string=PREG_REPLACE("/[^\w-:\!\?\(\),\.\n ]|INSERT|DELETE|UPDATE|UNION|SET|SELECT|TRUNCATE|DROP|TABLE/i","",$this->string);
                 $this->string=PREG_REPLACE("/([\r]?\n)/i","\n",$this->string);
                 $this->string=TRIM($this->string);
                 if($this->string!=="")
                   {
                    $stringArray=EXPLODE("\n",$this->string);
                    for($i=0;$i<=COUNT($stringArray);$i++)
                       {
                        if($stringArray[$i])  { $textarea[]=PREG_REPLACE("/\s+/"," ",$stringArray[$i]); }
                       }
                    $this->string = IMPLODE("\n",$textarea);
                   }
                 $this->string=TRIM($this->string);
                 RETURN $this->string;
                }
     
          public function word($string) // Любой текст, как правило отправляемый приложением, например, как дополнитеьный параметр в функцию, на который извне повлиять невозможно
                {
                 (string)$this->string=$string;
                 $this->string=PREG_REPLACE("/[^\w- ]|INSERT|DELETE|UPDATE|UNION|SET|SELECT|TRUNCATE|DROP|TABLE/i","",$this->string);
                 $this->string=TRIM($this->string);
                 RETURN $this->string;
                }
    }
     
     
  3. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    990
    Симпатии:
    266
    Не заметил удаления лишних тегов и чистку ява скриптов а-ля onClick()
     
  4. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    тут как бы общая очистка без xss
    вот мне и интересно кто как фильтрует данные, тк визуальный редактор это палево оень большое... именно поэтому я искал визуальны на ббкодах, нашел но они кирвые а жаль)
     
Статус темы:
Закрыта.