как защитить Google Chrome 80 бета asp + iframe - PullRequest
1 голос
/ 04 марта 2020

Средой веб-службы управляет сервер Windows 2012, IIS8.5, Classi c asp.

. Это проблема Chrome 80ver SameSite Issue.

На нашем сайте мы совершаем платежи, звоня в iframes и получая результаты по returnurl. Однако в returnurl существует проблема, которая изменяет существующее значение сеанса (иногда оно поддерживается, а иногда и изменяется).

Я пытался сначала. Добавьте заголовок в исходный код следующим образом

Response.AddHeader "Set-Cookie", "SameSite=None; Secur; path=/; HttpOnly" 

Секунда. Добавить web.config

<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" sameSite="None" />
<sessionState cookieSameSite="None" />

Третье. Добавить web.config rewrite

<rewrite>
 <outboundRules>
    <rule name="AddSameSiteCookieFlag">
       <match serverVariable="RESPONSE_Set-Cookie" pattern="^(.*SessionID)(SameSite=Lax)" />
       <action type="Rewrite" value="{R:1};SameSite=None" />
    </rule>
</outboundRules>

Можно ли в IIS8.5 установить для того же параметра сайта значение none?

1 Ответ

1 голос
/ 19 марта 2020

Я использую точную конфигурацию, упомянутую в этом вопросе, и обнаружил, что следующие правила перезаписи web.config работают как baseline решение:

<rewrite>
    <outboundRules>
        <rule name="Add HttpOnly" preCondition="No HttpOnly">
            <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
            <action type="Rewrite" value="{R:0}; HttpOnly" />
            <conditions>
        </conditions>
        </rule>
        <rule name="Add SameSite" preCondition="No SameSite">
            <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
            <action type="Rewrite" value="{R:0}; SameSite=None; Secure" />
        </rule>
        <preConditions>
            <preCondition name="No HttpOnly">
                <add input="{RESPONSE_Set_Cookie}" pattern="." />
                <add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
            </preCondition>
            <preCondition name="No SameSite">
                <add input="{RESPONSE_Set_Cookie}" pattern="." />
                <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None; Secure" negate="true" />
            </preCondition>
        </preConditions>
    </outboundRules>
</rewrite>
...