HTTP URL - разрешенные символы в именах параметров - PullRequest
22 голосов
/ 02 мая 2009

Существуют ли какие-либо формальные ограничения в отношении того, какие символы допускаются в именах параметров URL?

Я читал RFC3986 («Унифицированный идентификатор ресурса (URI): общий синтаксис»), но окончательного заключения не сделал.

Я знаю, что есть практические ограничения, но будет ли на самом деле запрещено делать что-то вроде:

param with\funny<chars>=some_value

пока я правильно избегаю:

param%20with%1cfunny%3cchars%3e=some_value

Ответы [ 3 ]

11 голосов
/ 02 мая 2009

Нет никаких ограничений на экранированные имена параметров в спецификациях URI. Однако могут быть ограничения в используемом вами серверном программном обеспечении. Это особенно верно, если вы используете «домашние» сценарии для интерпретации URI.

8 голосов
/ 02 мая 2009

Вы должны также прочитать RFC2396 . Кажется, он более информативен, чем RFC3986.

2 голосов
/ 02 мая 2009

Есть зарезервированные символы для URL-адресов, но пока вы не используете (urlencode), с вами все будет в порядке.

В зависимости от используемой платформы вы можете получить исключения, если попытаетесь отправить подозрительные значения. ASP.NET имеет фильтрацию содержимого, которая будет генерировать исключения, если вы попытаетесь отправить «небезопасные» данные, такие как сценарии или HTML. Это особенность платформы, а не ограничение или правило, налагаемое синтаксисом URL.

...