2016-09-21 2 views
0

Wir haben Cookies, die von einer Appliance in unserer Infrastruktur generiert werden, wir haben keinen Zugriff auf die Konfiguration der Appliance und können daher das HTTPOnly-Flag für die Cookies nicht direkt setzen.Einstellung HTTPOnly Flag auf Cookie in Lack 4

Wir haben einen Lack 4 Cache vor dieser Appliance, ist es möglich, das HTTPOnly-Flag auf dem Cookie dort zu setzen? Wenn ja, wie kann es gemacht werden?

Antwort

1

Wenn Ihr Back-End nur einen Set-Cookie Header pro Antwort setzt, kann das Hinzufügen des HttpOnly Flags zu diesem Header trivialerweise während des vcl_deliver Unterprogramms erfolgen. Sie müssen einfach resp.http.Set-Cookie mit regsub() umschreiben.

Wenn jedoch mehrere Set-Cookie Header in einer einzigen Antwort möglich sind, ist die vorherige Lösung nicht gültig. Sie könnten einen ähnlichen Ansatz in Betracht ziehen, indem Sie zunächst alle Set-Cookie Header in einem einzelnen durch Kommas getrennten Set-Cookie Header mit std.collect() zusammenführen und den zusammengeführten Header mit regsuball() umschreiben, um das Flag HttpOnly hinzuzufügen. Das Zusammenführen von Set-Cookie Header ist jedoch eine schlechte Idee. Einige Browser mögen gemischte Kopfzeilen nicht und bevorzugen, dass jede Kopfzeile Set-Cookie separat gesendet wird.

Zusammenfassung: Es gibt nichts, was Sie in VCL tun können, um das HttpOnly Flag hinzuzufügen, wenn mehrere Set-Cookie Header in einer einzigen Antwort möglich sind. Das kann nur implementiert werden using a VMOD. Ich bin mir nicht bewusst, dass VMOD das tut, was Sie brauchen, aber es könnte auf eigene Faust trivial implementiert werden.

Verwandte Themen