2015-01-30 2 views
1

С CGI specification, section 4.1.5, я понимаю, что:Переменная CGI PATH_INFO может содержать контрольные символы?

PATH_INFO = "" | ("/" path) 
path  = lsegment *("/" lsegment) 
lsegment = *lchar 
lchar  = <any TEXT or CTL except "/"> 

TEXT где и CTL определено выше в описании:

CTL   = <any control character> 
TEXT   = <any printable character> 

теперь вопрос идет, как можно управлять символы в PATH_INFO?

Поскольку PATH_INFO заполняется сервером www в соответствии с введенным пользователем URI, как мы вводим управляющие символы в веб-браузере?

ответ

0

Процент-кодирование может быть использовано, чтобы ввести любой символ в URL:

http://www.example.com/foo%03bar.html 

Это будет иметь CTL-гр характер между foo и bar.

+0

Такой быстрый ответ! Огромное спасибо! Извините, но могу ли я снова вас беспокоить? Не могли бы вы объяснить разницу между PATH_INFO от '" "" и "/", так как в спецификации указано, что 'A PATH_INFO of"/"представляет один сегмент пути void. ' –

+0

А также в спецификации указано, что' В отличие от URI path, PATH_INFO не кодируется URL-адресом и не может содержать параметры сегмента пути. ', поэтому, если PATH_INFO не кодируется URL-адресом, как он может содержать экранированные управляющие символы? –

+0

Извините, я не могу понять, как вы получите пустую строку. Когда я google «empty path_info cgi», большинство хитов - проблема в ColdFusion 10, где она не учитывает это. – Barmar

Смежные вопросы