Переменные $cookie_name

Volkov Oleg nginx at teratelecom.ru
Sat Jun 27 08:29:43 MSD 2009


Зачем изобретать велосипед?
url кодируется: %XX
где XX - hex код произвольного символа

В Птн, 26/06/2009 в 22:08 +0300, Gena Makhomed пишет:
> On Friday, June 26, 2009 at 20:31:46, Kirill A. Korinskiy wrote:
> 
> >> предлагаю такой вариант:
> 
> >> '-' транслируется в '_'
> 
> >> '_' транслируется в '__'
> 
> >> взаимно-однозначного соответствия нет, но и последовательность символов '--'
> >> в стандартных заголовках нигде не встречается, поэтому проблем не будет.
> 
> >> заодно не будет уязвимости, которая появляется
> >> при включении директивы underscores_in_headers
> 
> KAK> это еще хуже, чем мой хак и чем идея с экранированием.
> 
> как можно экранировать недопустимые символы,
> если в именах переменных разрешены только буквы,
> цифры и символ подчеркивания ?
> 
> разве что кодировать каждый недопустимый символ
> как _0x00 ... _0xff, символ '-' преобразовывать
> в символ '_', символ '_' кодировать как '_0x5f',
> символ '0' из входного потока кодировать как '_0x30',
> если во входном потоке он идет сразу после символа '-'.
> 
> при обратном преобразовании '_' становится '-',
> если после '_' не идет символ '0', иначе '_0'
> понимается как начало escape-последовательности.
> 
> '-'  <=> '_'
> 
> '_'  <=> '_0x5f'
> 
> '-0' <=> '__0x30'
> 
> так будет взаимно-однозначное соответствие
> исходной и закодированной строки символов,
> а также - полная обратная совместимость
> с режимом 'underscores_in_headers off'.
> 
-- 
С уважением,
Волков Олег







More information about the nginx-ru mailing list