Как разрешить «%» проходить в IIS - PullRequest
0 голосов
/ 21 октября 2019

У меня есть веб-приложение, разработанное с использованием DJANGO. На тестовом сервере DJNAGO все работает хорошо. Однако я попытался разместить его на веб-сервере IIS, и он работает только с одной проблемой, с которой я сталкиваюсь.

У меня есть одна форма (пользовательский ввод), и я хочу разрешить пользователям вводить подстановочные знаки, такие как SCA80%. Проблема в том, что я получаю ошибку 404, и кажется, что IIS блокирует ее, потому что URL содержит знак%.

Как я могу заставить IIS не проверять% независимо от проблем безопасности? Есть ли простое решение, чтобы исправить это?

Вот так выглядит URL, когда я отправляю свой запрос с подстановочным знаком:

/ pareto / article-description / SAC80% 25 /? type = fail & is_article_desc = True

Если я удаляю% 25 и помещаю весь SAC80RKEU211, все работает. Даже если я нахожусь на сервере разработки django,% 25 работает. Но не на IIS.

Ответы [ 3 ]

0 голосов
/ 22 октября 2019

Насколько я знаю, IIS ввел правила фильтрации URL-адресов по соображениям безопасности. '%' По умолчанию заблокирован как часть соображений безопасности в URL-адресе.

Я предлагаю вам попробовать использовать приведенный ниже конфигнастройка для разрешения «%».

<system.webServer>
<security>
  <requestFiltering allowDoubleEscaping="true">
  </requestFiltering>
</security>
</system.webServer>

Если это не решит вашу проблему, пожалуйста, опубликуйте подробное сообщение об ошибке и коды состояния, чтобы мы могли найти решение.

0 голосов
/ 25 октября 2019

Я решил проблему, кодировав отправляемые значения, такие как%, и расшифровав его, чтобы оно заменило значение%

.
0 голосов
/ 21 октября 2019

Вы можете использовать помощника типа smart_text ( docs ) для обработки текста перед передачей в базу данных. Это просто обёртка вокруг force_text, так что вы тоже можете посмотреть туда.

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