Sehr einfache Authentifizierung mit one-time-cookie auf nginx
Ich habe eine Website ausschließlich für den privaten Verbrauch von 3-Programmierer. Es ist eine einfache HTML-serviert von nginx direkt, aber bestimmt für den Verbrauch innerhalb und außerhalb des Büros.
Möchte ich ein einfaches Passwort oder authentication scheme. Ich könnte mit HTTP-auth, aber diese neigen dazu zu verfallen, ziemlich oft, das macht es ein Schmerz für Menschen zu verwenden. Ich bin auch nervös, es ist viel einfacher für jemanden zu schnüffeln als cookies.
So Frage ich mich, wenn ich könnte nur ein cookie in Ihrem Browser in JavaScript eine eindeutige lange ID und irgendwie sagen, nginx zu akzeptieren nur Anfragen (für eine bestimmte sub-Domain), die dieses cookie.
Ist das einfach genug zu tun? Wie kann ich
- sagen nginx filtern cookie
- im browser ein cookie gesetzt, das nie abläuft?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Nginx filter durch ein cookie, könnten Sie eine Aktion durchführen, wenn das cookie nicht vorhanden ist, und dann Ihre eigentliche Aktion, für die 3 Leute, die Zugriff haben, beispielsweise:
Und um ein cookie zu setzen, das nie erlischt, starten Sie Ihren browser JavaScript-Konsole auf eine Seite, die auf dem server-hostname und geben Sie:
Technisch nicht für immer, aber 100 Jahre sollte es tun. Sie können auch
expires=
für ein absolutes Datum in RFC1123-format, wenn Sie so geneigt sind und sich leicht anpassen können Sie diepath
wenn Sie benötigen. Dies setzt auch diesecure
- flag im cookie wird also nur gesendet werden, die über HTTPS.Gibt es auch browser-add-ons, das Ihnen erlaubt, beliebige cookies, aber alle modernen Browser haben eine JavaScript-Konsole.
Gibt es eine wirklich einfache Lösung suchen, die fand ich von ein blog-post von Christian Stocker. Es implementiert die folgenden Regeln:
Dies ist wirklich das beste aus beiden Welten.
Hier ist die config: