• Модуль: 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;
}