Я пытаюсь разместить свой сайт, который использует DotNetOpenAuth (OpenID) за ISA 2006 (обратный прокси-сервер), и после того, как он аутентифицировался у провайдера (например, Google), и он возвращается с URL с% 253A в URL. Однако фильтр ISA HTTP отклоняет запрос.
Что мне нужно сделать, так это в правиле веб-публикации ISA щелкнуть правой кнопкой мыши> свойства политики HTTP config> снять флажок «Проверять нормализацию», и это сработало.
- Это проблема на ISA 2006 вообще? У других брандмауэров есть подобные проблемы?
- Или это проблема OpenID или DotNetOpenAuth?
- Безопасно ли отключать проверку нормализации на ISA?
Согласно MSDN, цитата «Веб-серверы получают запросы в кодировке URL. Это означает, что определенные символы могут быть заменены знаком процента (%), за которым следует определенное число. Например,% 20 соответствует пробелу, поэтому запрос на http://myserver/My%20Dir/My%20File.htm совпадает с запросом на http://myserver/My Dir / My File.htm. Нормализация - это процесс декодирования URL-кодированных запросов.
Поскольку% может быть закодирован URL-адресом, злоумышленник может отправить тщательно созданный запрос на сервер, который в основном имеет двойную кодировку. В этом случае Internet Information Services (IIS) могут принять запрос, который в противном случае он отклонил бы как недействительный. Когда вы выбираете Verify Normalization, HTTP-фильтр нормализует URL-адрес два раза. Если URL после первой нормализации отличается от URL после второй нормализации, фильтр отклоняет запрос. Это предотвращает атаки, основанные на запросах с двойным кодированием.
Обратите внимание, что хотя мы рекомендуем вам использовать функцию проверки нормализации, она также может блокировать законные запросы, содержащие%. "