ganz schön lax der Keks- Samesite Cookies

Wir haben eine System laufen bei dem ein Cookie auf ppedv.de gesetzt wird. Über eine Image Src nutzen wir den Cookie von all unseren Seiten um ein gewisses Tracking sicher zu stellen. Dahinter steckt ein Empfehlungsprogramm.
Jedenfalls eines Tages fiel auf, das klappt nicht mehr. Wir sind über die geänderten Sicherheitsrichtlinien von Chrome gestolpert.

Screenshot 2024-09-20 140819

Heute wird in dem Szenario das Cookie auf adc.ms zwar als gesetzt angezeigt, aber mit dem Wert LAX für Samesite. Das kann man in der F12 Browser Console prüfen.

Screenshot 2024-09-20 141029

Für eine ASP.NET Webforms Anwendung ergibt sich nun folgende Änderung

Web.Config der ppedv.de Website muss den Eintrag mit dem Wert None aufweisen. Also die auf die das Cookie registriert werden soll.

   1:   <system.web>
   2:    <httpCookies sameSite="None" requireSSL="true" />

Hier sieht man auch Einschränkung nummer zwei. Das erfordert https- auf beiden Seiten.

In meinem Image Handler (Endung ashx) findet sich nun folgender Code.

   1:  Public Class ImageHandler
   2:      Implements System.Web.IHttpHandler
   3:      Sub ProcessRequest(ByVal context As HttpContext) 
Implements IHttpHandler.ProcessRequest
   4:          Dim id = context.Request.QueryString("id")
   5:          If Not IsNothing(id) Then
   6:              Dim myCookie As HttpCookie
   7:              myCookie = New HttpCookie("id")
   8:              myCookie.Domain = "ppedv.de"
   9:              myCookie.Expires = DateTime.Now.AddHours(48)
  10:              myCookie.Value = id
  11:              myCookie.SameSite = SameSiteMode.None
  12:              myCookie.Secure = True
  13:              context.Response.SetCookie(myCookie)

Ich musste Zeile 11 und Zeile 12 ergänzen.

In meinen Dritseiten, hier adc.ms wird nun der Handler als Image Source eingebunden.

 <img src='
https://ppedv.de/imghandler.ashx?<%=If(Request.QueryString("id")
= "", "", "id=" + Request.QueryString("id")) %>' width="0" height="0" />

 

Im Ergebnis kann so der Benutzer im Browswer Aufruf von Adc.ms?id=hannes einen Cookie in ppedv.de erzeugen, der bis zu 2 Tage lange von Code der ppedv.de Website gelesen werden kann.

Der alte Zustand ist wieder hergestellt. Warum das jetzt sicherer sein soll, kann ich auch nicht beantworten.

Kommentare sind geschlossen