ошибка, когда ресурс URL содержит амперсанд - PullRequest
0 голосов
/ 22 мая 2018

У нас есть веб-API со следующим URL-адресом ресурса.

http://www.example.com/book/bookid/name/bookname

Теперь есть несколько книг, которые содержат имена с амперсандом '&', и когда делается запрос на такие имена, мы получаем нижеошибка

Используемый URL:

http://www.example.com/book/123/name/ban&ban

Ошибка: Потенциально опасное значение Request.Path было обнаружено клиентом (&)

Мы попытались передать или использовать закодированное значение для & т.е.% 26 и получить ту же ошибку.

Использованный URL:

http://www.example.com/book/123/name/ban%26ban

Ошибка: Потенциально опасноУ клиента было обнаружено значение Request.Path (&)

Теперь, когда я добавил свойство requestPathInvalidCharacters = "" в элемент web.config в элементе httpruntime, он начал нормально работать как длявыше URL.Но когда я читаю разные статьи, говорят, что не рекомендуется использовать свойство requestPathInvalidCharacters = "".

Кроме того, поскольку в производстве много названий книг с символом «&» и разными специальными символами, мы не можем избежать отправки символа «&» для названий книг, есть ли хороший способ справиться с этим?

1 Ответ

0 голосов
/ 29 мая 2018

Вы должны использовать параметр вместо пути в строке запроса.Например: http://www.example.com/book/bookid?name=Fizz&bookname=Buzz

Вот несколько объяснений, почему возникает это исключение: http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...