Nachdem kürzlich eine Pudel-Sicherheitslücke aufgedeckt wurde, entschied sich unser Team, von SSLv3 zu wechseln. Vor dem vollständigen Entfernen möchten sie die täglichen Benutzer warnen , dass ihr Browser veraltetes SSLv3 verwendet. Also kamen wir auf die Idee
- Ermitteln Sie das Protokoll (SSLv3, TLS1 usw.) aus dem Front-End-SSL-Offloading (wir verwenden Nginx)
- Übergeben Sie diese Informationen (SSL-Protokoll) per HTTP-Header an Apache-Backend.
Dann verarbeitet unser Backend-Code diesen Header und gibt eine Warnung aus, wenn der Client SSLv3 verwendet .
Mir ist bewusst, dass Nginx eine Funktion hat proxy_set_header
. Also dieser wäre so einfach
proxy_set_header X-HTTPS-Protocol $something;
Das Problem ist nun: Natürlich kennt Nginx das vom Client verwendete Protokoll, aber wie kann ich diese Informationen über den HTTP-Header an das Backend übergeben?
Vielen Dank
Wie von Apache-Umleitungsbenutzern mit ähnlichem Thread gezeigt, wenn sie SSLv3 verwenden , wurde diese Idee möglicherweise zu einer sehr sehr schlechten Idee.
Der Grund dafür ist, dass TLS-Handshake auftritt, bevor HTTP-Verkehr durch den TLS-Tunnel gesendet wird. Bis unser Backend das SSL-Protokoll erkennt, hat der Client möglicherweise in seiner ersten Anfrage private Daten gesendet. Für eine dauerhafte und langfristige Lösung sollten wir in Betracht ziehen, SSLv3 zu deaktivieren.