URL-адрес перезаписывает пользовательский заголовок в файл cookie - PullRequest
0 голосов
/ 05 августа 2020

У меня есть клиент, выполняющий HTTP-запросы к WebAPI. API-интерфейсы защищены с помощью файлов cookie; однако этот клиент не может отправлять файлы cookie. Этот клиент может отправлять настраиваемые заголовки http. Итак, можем ли мы использовать модуль перезаписи, чтобы взять пользовательский заголовок http и установить его как cook ie.

Я добавил HTTP_COOK IE в качестве переменной сервера. Я борюсь с состоянием. Как мне установить условие для извлечения пользовательского заголовка http и установить его как cook ie.

EDIT Итак, я получил заголовок, который копируется в cook ie, используя приведенное ниже правило

            <rule name="cookie" patternSyntax="ECMAScript">
                <match url=".+" />
                <serverVariables>
                    <set name="HTTP_COOKIE" value="{C:0}" />
                </serverVariables>
                <action type="None" />
                <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                    <add input="{HTTP_ccauth}" pattern=".+" />
                </conditions>
            </rule>

Теперь оно перезаписывает повар ie, поэтому мне нужно вместо этого добавить к нему ...

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Требуется два правила: одно для установки повара ie, если повара нет ie, и другое, чтобы добавить его в куки, если есть повар ie

<rule name="Append Auth Header to Cookies" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url=".+" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                        <add input="{HTTP_ccauth}" pattern="(.+)" />
                        <add input="{HTTP_COOKIE}" pattern="(.+)" />
                    </conditions>
                    <serverVariables>
                        <set name="HTTP_COOKIE" value="{C:1}{C:2}" />
                    </serverVariables>
                    <action type="None" />
                </rule>
                <rule name="Set Auth Header to Cookies" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url=".+" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                        <add input="{HTTP_ccauth}" pattern="(.+)" />
                    </conditions>
                    <serverVariables>
                        <set name="HTTP_COOKIE" value="{C:1}" />
                    </serverVariables>
                    <action type="None" />
                </rule>
0 голосов
/ 05 августа 2020

На мой взгляд, если WebAPI защищен с помощью повара ie, клиент должен быть аутентифицирован системой аутентификации WebAPI (JWT, Asp. Net identity) вместо настройки локального кеша для передачи учетные данные. Если клиентские файлы cookie могут быть настроены с помощью JS/Postman, система небезопасна, рекомендуется использовать файлы cookie типа HttpOnly. Кроме того, вы можете добавить строку запроса в URL-адрес, чтобы определить, настроен ли локальный кеш. См. Ссылки ниже. https://www.reddit.com/r/dotnet/comments/2xb6a5/is_there_a_way_to_add_a_setcookie_header_using/ https://clarify.dovetailsoftware.com/gsherman/2011/01/20/using-the-url-rewrite-module-to-set-your-cookies-to-httponly/

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