
Ich möchte einen Caching-Proxy verwenden, um alle Verbindungen auf meiner Seite über SSL zu erzwingen und die unsichere Verbindung vom Proxy handhaben zu lassen.
Auf diesen Proxy kann über das Internet zugegriffen werden.
Jetzt habe ich mich gefragt, was irgendjemanden davon abhält, diesen Proxy zu verwenden?
Im Grunde muss ich den E-Mail-Inhalt in einem Browser anzeigen und die eingebetteten Assets sollten über SSL geproxied werden, etwa https://myproxy.com?url=http%3A%2F%2Funsecure.com%2Fa.png
.
Antwort1
Wenn ich das richtig verstehe, zeigen Sie E-Mail-Inhalte von Drittanbietern auf Ihrer Site an (d. h. Ihr System lädt E-Mails herunter und zeigt sie auf einer Webseite an). Sie sollten dabei sehr vorsichtig mit den XSS-Risiken sein und die empfangenen Inhalte richtig maskieren und rendern. Das ist leichter gesagt als getan, insbesondere wenn Sie möchten, dass E-Mails ihr allgemeines Erscheinungsbild beibehalten.
GMail beispielsweise verbirgt standardmäßig alle Inhalte von Drittanbietern und wenn Sie sich dafür entscheiden, diese zu laden, zeigt der Browser tatsächlich ein Warnzeichen über der Anzeige „Sichere Verbindung“ an. Sollten Sie sich dafür entscheiden, wäre die Verwendung einer separaten Domain eine gute Idee. „Es ist gut genug für Google“ wäre für einen Kunden wahrscheinlich eine ausreichend gute Begründung.
Wenn Sie Ihren Proxy naiv implementieren, hindert Sie nichts daran, Ihren Proxy für beliebige Inhalte zu verwenden. Sie könnten dem Server, der den Proxy ausführt, eine Art HTTP-Authentifizierung hinzufügen (cookiebasiert, HTTP-Authentifizierung oder TLS-Client-Zertifikate). In einer regulären Umgebung ist cookiebasiert wahrscheinlich die einzige sinnvolle Option. Anspruchsvollere Alternativen würden das Parsen von E-Mails, das Extrahieren von Hotlink-Ressourcen und das Umschreiben der URLs umfassen, sodass Ihr Proxy nur speziell gestaltete Proxy-Anfragen empfängt und nichts, was Ihre Benutzer in die URL-Leiste eingeben.
Wenn Sie die allgemeine Verwendung und Funktionalität des von Ihnen erstellten Systems erklären, kann ich möglicherweise eine bessere Lösung vorschlagen.