Machen Sie sich bereit für die neuen Attribute SameSite und Secure für Cookies

Die Fähigkeiten von Cookies sind im Laufe der Jahre gewachsen und haben sich weiterentwickelt, aber sie haben einige Altlasten hinterlassen. Um damit umzugehen, ändern Browser (einschließlich Safari, Chrome, Firefox und Edge) ihr Verhalten in Bezug auf die SameSite- und Secure-Attribute für ein „Secure-by-default“ -Modell für Cookies.

Als 4D Webentwickler sollten Sie sich Gedanken über das 4D Web Sessions Session Cookie machen, wenn Sie Ihre Anwendung vor Cross-Site Request Forgery schützen wollen .

Um zu verhindern, dass Ihr Web-Session-Cookie sinnlos im Web zirkuliert oder von Browsern aufgrund eines Standardwerts missverstanden wird, sollten Sie sich fragen, ob es sich um:

  • ein Drittanbieter-Cookie: das mit einem anderen Domänennamen verbunden ist als dem der Seite, auf der das Cookie gefunden wird. Ein Drittanbieter-Cookie wird von einem Seitenobjekt( z. B. einer Anzeige) platziert, das von einer anderen Domäne als derjenigen stammt, die die Seite hostet

oder

  • ein First-Party-Cookie: mit der Domain der Seite verknüpft

Je nach Anwendungsfall sollten Sie den geeigneten Wert für das SameSite-Attribut Ihres Web-Session-Cookies wählen.

Um die Sicherheit zu erhöhen, muss das Attribut Secure für das Web-Session-Cookie gesetzt werden, wenn die Verbindung gesichert ist (HTTPS), um dem Browser anzuzeigen, dass das Cookie sicher gesendet werden kann.

Lesen Sie weiter, um zu erfahren, wie 4D Ihnen den Rücken freihält, um den Datenschutz und die Sicherheit im Web zu verbessern.

Damit Sie auswählen können, wie sich Ihr Webserver verhalten soll, haben wir das Webserver-Objekt um eine neue Eigenschaft sessionCookieSameSite erweitert.

Setzen Sie einen Wert für das Samesite-Attribut

Standardmäßig setzt der Webserver das SameSite-Attribut des Session-Cookies auf„Strict„. Wir haben diesen Wert gewählt, weil er am sichersten ist.

Wenn Sie einen anderen Wert wünschen, verwenden Sie den Befehl WEB Server:

var $webServer; $settings: Object

$settings :=New object()
$webServer :=WEB Server
$settings .sessionCookieSameSite:=Web SameSite Lax

$webServer .stop()
$webServer .start($settings)

Jeder Empfindlichkeitswert für das Attribut SameSite wird in der 4D Sprache mit spezifischen Konstanten versehen:

  • Web SameSite Lax = „Lax“
  • Web SameSite Strict = „Streng“
  • Web SameSite Keine = „Keine“

Hier ein Überblick darüber, was Sie in Ihrem Browser sehen werden:

und das Attribut secure?

Wenn der Wert des SameSite-Attributs „None“ ist, kann es bei einigen Browsern erforderlich sein, das Secure-Attribut auf einen anderen Wert zu setzen, um es zu senden (nur wenn die Verbindung HTTPS ist).

Die gute Nachricht ist, dass der 4D Webserver dies automatisch handhabt.

Bei einer HTTPS-Verbindung wird das Sitzungscookie automatisch mit dem Attribut “ Sicher“ versehen, so dass es von den Browsern gesendet werden kann.

Hier ist eine Übersicht darüber, was Sie in Ihrem Browser bei einer HTTPS-Verbindung sehen werden:

blank

Lassen Sie uns nun sicher mit unseren Webanwendungen arbeiten und dies im Forum diskutieren!

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.