UJy
Постоялец
- Регистрация
- 23 Авг 2011
- Сообщения
- 385
- Реакции
- 145
- Автор темы
- #1
Ковыряю один модуль для Bitrix, который видоизменяет пагинацию.
И в этом модуле 1 функция, которая проверяет урл и подменяет его.
Вот эта функция:
Я примерно понимаю что она делает, но эта регулярка взрывает мне мозг. Может кто-нибудь написать её по-человечески? Или объяснить что она ищет в урле.
И в этом модуле 1 функция, которая проверяет урл и подменяет его.
Вот эта функция:
PHP:
function __isPathTraversalUri($uri)
{
if (($pos = strpos($uri, '?')) !== false) {
$uri = substr($uri, 0, $pos);
}
$uri = trim($uri);
return preg_match("#(?:/|2f|^|\\\\|5c)(?:(?:%0*(25)*2e)|\\.){2,}(?:/|%0*(25)*2f|\\\\|%0*(25)*5c|$)#i", $uri) ? true : false;
}
$newUri = preg_replace('#(pagen[\d]+/)#is', '', $_SERVER['REQUEST_URI']);
if (!__isPathTraversalUri($newUri)) {
$_SERVER['REQUEST_URI'] = $newUri;
}
Код:
(?:/|2f|^|\\\\|5c)(?:(?:%0*(25)*2e)|\\.){2,}(?:/|%0*(25)*2f|\\\\|%0*(25)*5c|$)