ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Экранирование символов в URI


  • To: nginx-ru@xxxxxxxxx
  • Subject: Экранирование символов в URI
  • From: Victor Antonovich <v.antonovich@xxxxxxxxx>
  • Date: Wed, 27 May 2009 12:45:02 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=g/ud6uyKsEhYxXWHGq+XMVvCMBrnbNgaRLNABgkfS0Y=; b=drxVDuL0oJrXDh8LfQbjQo0YOA4lGLRgRVZrsr7ZDIE24vYx/mOVVPyydhJsZ0tsk4 95znpiyebXfvGDFp70BbSU0Oui0j6Xb4ZkwbuSpgQuz/3gSDAFg2E3sxuSqvUZNWLubg uc2y8sQzwBcsKLNDn/Ni4yBC7B5Ud/McYsGEQ=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=qUJBBckpHpGlBGyzts68KCi8fIlUgNyoCJxQbM8jOHdyZV+ZzHnnKaiJtBu3SrFoqV vZ1OLOhxrob8XzFsqy6RwfRQOP182B/dzcKPPcga6uC046iKsgyBYjHIUU8WkivYFb4O VaTZ9F7BIERTIuyjCftQNBpWDE0r8KMXE5J0w=

Всем добрый день!

Работая с nginx в качестве фронтенда к web java-приложению
(REST-контейнер Jersey внутри Tomcat), столкнулся со следующей
проблемой. Согласно документации, nginx обрабатывает URI, передаваемые
бэкенду, в том числе проводит (де)кодирование percent-encoded
символов. Однако, как выяснилось, часть символов, которые приходят
экранированными, nginx передает бэкенду без экранирования, например,
символ ` (обратный апостроф). REST-контейнеру это категорически не
нравится, и он сразу отдает ошибку 500.
Согласно RFC 2396 (http://www.ietf.org/rfc/rfc2396.txt, пункт 2.4.3.
"Excluded US-ASCII Characters"), данный символ и ряд других должны
экранироваться через percent-encoding, но nginx, похоже, этого не
делает (по крайней мере, в коде функции ngx_escape_uri() эти
unwise-символы забиты в маски как неэкранируемые).

Вопрос, соответственно, простой - это баг или фича? :)

Виктор.


 




Copyright © Lexa Software, 1996-2009.