Подтвердить что ты не робот

URL-адрес HTTP - допустимые символы в именах параметров

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

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

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

param with\funny<chars>=some_value

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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