- Модуль: wiki
- Путь к файлу: ~/bitrix/modules/wiki/classes/general/wiki_security.php
- Класс: CWikiSecurity
- Вызов: CWikiSecurity::_dostr
protected function _dostr(&$str)
{
if(preg_match("/^[A-Za-z0-9_.,-]*$/", $str))
return false;
$str1="";
$strY=$str;
while($str1 <> $strY)
{
$str1 = $strY;
$strY = $this->_decode($strY);
$strY = str_replace("x00", "", $strY);
$strY = preg_replace("/+(;|([^d;]))/is", "\2", $strY);
$strY = preg_replace("/+(;|([^da-f;]))/is", "\2", $strY);
}
$bResult = false;
$str2 = "";
$strX = $str1;
while($str2 <> $strX)
{
foreach($this->_filters as $ch => $filters)
{
if($ch == '' || mb_strpos($str2, $ch) !== false)
{
$str2 = $strX;
$strX = preg_replace($filters[1], $filters[0], $str2);
$bResult = true;
}
}
}
if($str2 <> $str1)
$str = $str2;
else
$str = $str1;
return $bResult;
}