2015-10-21 2 views
3

У меня есть служба REST, и когда я пытаюсь сделать звонок к товару, у которого есть имя, у которого есть имя, у меня есть имя, я получаю выше ошибки, что имело бы смысл, если бы я не был закодирован &Получение «Потенциально опасное значение Request.Path было обнаружено у клиента (&)»

Так что это будет мой призыв:

http://localhost:57851/myService/Servers/myServer/Repositories/myRepository/Models/Mine%26Yours

Вы можете увидеть «Mine & Yours» имеет был закодирован как «Mine% 26Yours», поэтому он должен быть безопасным.

Но запрос подбирается, как будто я его не закодировал.

Любые идеи?

Edit:

Это не то же самое (Getting "A potentially dangerous Request.Path value was detected from the client (&)")

+0

Возможный дубликат [Начало "потенциально опасное значение Request.Path было обнаружено от клиента (&)"] (http://stackoverflow.com/questions/6025522/getting-a-potentially-dangerous- Requ est-path-value-was-detected-from-the-client) – haraman

+1

Нет, не дублирование, в этом вопросе они не кодировали &, поэтому да, что должно потерпеть неудачу. – sbarnby71

+1

Что вы имеете в виду, «подобрано», как будто я не кодировал его? идея кодирования заключается в том, чтобы избежать потенциально опасного поведения, но, наконец, вы получаете исходное значение на стороне сервера (не закодировано). – mikus

ответ

3

Это не имеет никакого значения для ASP.NET закодировать ли вы & символ или нет. Смотрите этот ответ: https://stackoverflow.com/a/12037000/134761

Чтобы разрешить специальные символы в вашем URL пути вы должны изменить параметр requestPathInvalidCharacters в web.config, как это:

<httpRuntime requestPathInvalidCharacters="" /> 

Или, если вы хотите только разрешить & но запретить все другие специальные символы:

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,\"/> 
+0

Привет @holdenmcgrohen, Спасибо за информацию, Я знаю requestPathInvalidCharacters устанавливающего и хотел избежать его использования и позволяют чарсы как <, >, и передаются в ООН проверила. – sbarnby71

+0

Хотел бы посмотреть, есть ли у кого-то более безопасный способ справиться с этим, кроме как разрешить потенциально опасные символы. – sbarnby71

+1

Более безопасный способ заключается в том, чтобы избежать использования специальных символов в пути: конвертируйте эту часть вашего URL в параметр (например, myRepository? Models = Mine% 26Yours) или используйте специальный механизм кодирования/декодирования для специальных символов – holdenmcgrohen

Смежные вопросы