Ответ 1
В спецификациях URI нет ограничений на имена экранированных параметров. Однако могут быть ограничения в программном обеспечении на стороне сервера. Это особенно актуально, если вы используете "домашние" скрипты для интерпретации URI.
Существует ли какое-либо формальное ограничение относительно того, какие символы разрешены в именах параметров URL?
Я читал RFC3986 ( "Унифицированный идентификатор ресурса (URI): общий синтаксис" ), но не сделал окончательного вывода.
Я знаю, что существуют практические ограничения, но на самом деле было бы запрещено делать что-то вроде:
param with\funny<chars>=some_value
пока я убегаю правильно:
param%20with%1cfunny%3cchars%3e=some_value
В спецификациях URI нет ограничений на имена экранированных параметров. Однако могут быть ограничения в программном обеспечении на стороне сервера. Это особенно актуально, если вы используете "домашние" скрипты для интерпретации URI.
Вы также должны прочитать RFC2396. Это кажется более информативным, чем RFC3986.
Есть зарезервированные символы для URL-адресов, но пока вы убегаете (urlencode), вы должны быть в порядке.
В зависимости от используемой структуры вы можете получить исключения, если попытаетесь отправить подозрительные значения. ASP.NET имеет фильтрацию содержимого, которая будет генерировать исключения, если вы попытаетесь отправить "небезопасные" данные, например скрипты или HTML. Это особенность структуры, а не ограничение или правило, применяемые синтаксисом URL.