ASP.NET: Chrome80+版本SameSite導致的Cookie故障


 

近期將Chrome更新到80+版本后,出現單點登錄故障;祭出fiddler逐個請求排查后,發現有些環節的Cookie沒有正確的寫入和刪除

F12和Fiddler上都看到Cookie的屬性SameSite=None對比請求后發現可能是這里的問題;

引起的原因-代碼層面

ASP.NET雖然服務端用的Framework是4.03的包;但是對比相關的system.web.dll反編譯后,對比正常的服務器和非正常處理cookie的服務器

確實2019年12月的dll直接覆蓋的4.03里的dll;多了一個SameSite的屬性;

 

解決辦法:

實際上是4.7以后的framework支持新的Cookie標准屬性SameSite

如果老的站點無需維護可以使用臨時的方案

配置文件里加上,即可解決

 <appSettings>
    <add key="aspnet:SuppressSameSiteNone" value="true" />
  </appSettings>

 

如果是持續迭代的項目,可以根據實際情況迭代代碼設置相關屬性值,或者做下面的全局配置:

<system.web>
  <httpCookies sameSite="Strict" requireSSL="false" />
 <system.web>

SameSite支持Strict、Lax、None、Unspecified從嚴格到寬松依次排序

 

 

資料

https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite#sob

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM