2009-04-17 4 views
0

zu implementieren Ich weiß, dass die Verwendung von SSL eine Möglichkeit ist, dies zu tun. Ich gehe auf Websites wie Facebook und LinkedIn und sehe, dass sie nur https verwenden, wenn sie mit sensiblen Daten wie Passwörtern und persönlichen Einstellungen umgehen. Wie wird das gemacht? Wie sind sie in der Lage, https auf einigen Webseiten zu implementieren, während sie http auf anderen verwenden, während sie immer noch sicher sind, oder sind sie?Was ist der beste Weg, um Sicherheit durch HTTP

Antwort

0

Ihre HTTP-Sites sind nicht sicher - normalerweise wird der Overhead von HTTPS als unnötig erachtet, wenn es um die Anmeldung bei sozialen Netzwerken geht. Zum Beispiel ist StackOverflow unsicher - jemand mit einem Netzwerk-Sniffer könnte ein Login-Cookie abfangen und sich als Benutzer ausgeben.

Wenn Sie nur überprüfen müssen, ob eine Anmeldung gültig ist und sich nicht um die Benutzerfreundlichkeit kümmert, können Sie digest authentication verwenden. Es bietet eine sichere Möglichkeit, einen Benutzernamen und ein Passwort über HTTP zu übertragen. Natürlich sind alle Daten, die von der Site zurückgesendet oder vom Benutzer gesendet werden, anfällig für Sniffing.

Kurze Version: Wenn Sie Sicherheit brauchen, verwenden Sie HTTPS. Sie können sogar ein kostenloses Zertifikat von Seiten wie CAcert erhalten.

+0

Ja, HTTPS wird nur zum Schutz des Passworts verwendet. Dies ist jedoch in Sicherheitssystemen üblich. – Mark

+0

CAcert ist keine Stammzertifizierungsstelle - Sie können zu diesem Zeitpunkt auch selbst signieren. –

+0

Oder lassen Sie mich neu formulieren - es ist keine Root-CA wie von Firefox erkannt, und wahrscheinlich auch nicht IE. –

1

Dieser Ansatz ist nicht sicher. Nun, es ist sicher, wenn Sie HTTPS verwenden, aber sobald Sie zu HTTP gewechselt haben, werden alle Daten über eine unverschlüsselte Leitung übertragen. Der Sitzungs-ID-Cookie (oder der Status und die Benutzeridentifikation werden ebenfalls beibehalten). Es gibt also immer noch eine Lücke, um diese Informationen in der unverschlüsselten Zeile zu stehlen und zu versuchen, sich als Sie zu imitieren.

Aber dieser zweispurige Ansatz ist üblich. Weil HTTPS einige Nachteile hat. Eine davon ist, dass es teuer ist (eingehende und entschlüsselte Daten werden verschlüsselt), und eine andere ist, dass zumindest das öffentliche Caching deaktiviert wird.

0

Es hängt davon ab, was Sie schützen möchten und wie viel Aufwand Sie für den Benutzer benötigen, wenn Sie nicht https verwenden.

Sie können selektiv die Daten in Javascript verschlüsseln, so dass nur sensible Informationen geschützt werden, aber das ist riskant, da alles, was in Javascript getan wird, reverse-engineered sein kann.

Sie können hier für eine Art und Weise auf meine Antwort aussehen es in Javascript zu tun: How Do I encrypt post data while using ajax and JQuery?

Wenn Sie wollen einfach nicht, die Daten geändert werden, während übertragen werden können Sie einen Hash bekommen erstellen oder konvertieren die Daten zu einem Hash, wenn Sie es als Hash gespeichert haben. Passwörter werden oft als Hash gespeichert, was für sie sinnvoll wäre.

Sie können all dies in Javascript tun, aber es wird die Übertragung der Daten verlangsamen.

Wenn Sie Webservices verwenden, die auch über http gehen, dann funktionieren diese Optionen auch, aber sie können schneller sein, da das Programm nicht in Javascript sein würde.

0

Sicherheit ist weit mehr als nur HTTP/HTTPS. Dies dient nur dazu, das Lesen von Daten während der Übertragung zu verhindern.

Der einfachste Weg, eine HTTPS-Anfrage auf einer HTTP-Site zu machen, ist über ein Formular, dessen Aktion https://yoursite/login oder etwas ähnliches ist. Dies würde dazu führen, dass Sie auf diese Seite gehen und diese Seiten oft zu Ihrer Herkunft zurückkehren oder Sie auf eine Homepage weiterleiten. So macht es Facebook. Der Rest der Website wird aufgrund von Zugriffssteuerungen als relativ sicher angesehen, die sicherstellen sollen, dass diejenigen, die die Erlaubnis haben, etwas anzusehen, die einzigen sind, die dies tun können. Dies schützt nicht vor Wireshark oder anderen Tools, die den Verkehr schnüffeln.Einen Beitrag über Ajax zu schreiben, ist eine schlechte Idee, weil es zu einfach ist, Cross-Site-Scripting zu verwenden, um mit dem Ajax-Aufruf herumzuhantieren.