Backbone HTTP-Basis-Rest-API-Authentifizierung

8

Ich verwende Backbone.js und kommuniziert mit einer Stateless Rest API. Einige Anrufe erfordern eine Authentifizierung über HTTP basic.

Was ich nicht verstehe ist, irgendwie muss ich jede Anfrage authentifizieren, wie kann ich das sicher machen? Mein erster Gedanke war, einen Cookie zu haben, den Benutzernamen und das Passwort zu speichern, aber das wäre verwundbar?

Kann dies sicher gemacht werden?

    
onlineracoon 27.08.2012, 15:14
quelle

2 Antworten

4

Ist Ссылка etwas, das Sie nützlich finden würden?

Dieses Plugin ermöglicht den Zugriff auf entfernte Ressourcen, die durch HTTP-Basis-Authentifizierung über Ihre Backbone-Modelle und Sammlungen geschützt sind.

Wie funktioniert es?

Für eine mit HTTP-Basisauthentifizierung geschützte Ressource muss der folgende HTTP-Header bei jeder Anforderung festgelegt werden:

Autorisierung: Einfach Das Zugriffstoken wird gebildet, indem der Benutzername und das Passwort zusammen mit a: separator und encoding in Base64 verkettet werden.

Dieses Plug-in behandelt die Base64-Codierung und legt automatisch den Berechtigungsheader für jede Anforderung fest, die Backbone.sync verwendet.

    
GaryJ 25.03.2013, 17:28
quelle
9

Es gibt zwei Themen zu dieser Frage. Man ist über Sicherheit und man scheint über REST-Regeln zu sein.

Die sichere Durchführung der Authentifizierung besteht darin, diese Daten über eine SSL-Verbindung weiterzuleiten. Nur so können Daten sicher über die Leitung übertragen werden.

In Bezug auf das Senden der Authentifizierung mit Basis-Auth über jede Anfrage (REST), tun dies nicht viele Leute, die ich kenne, in der Realität.

Es gibt immer eine lange Diskussion darüber, wie viel Sicherheit genug Sicherheit bietet und es hängt wirklich von Ihrer Anwendung ab und von welchem ​​Zweck. Ich weiß, dass dies nicht die definitive Antwort ist, nach der Sie vielleicht suchen, aber ich gebe Ihnen nur meine Meinung und wie ich mich mit den von Ihnen erwähnten Themen befasse.

Bei REST-basierten Apps lautet die Geschichte, dass man jede Anfrage authentifizieren sollte, aber in der Praxis finde ich, dass dies eher ein "Leitfaden" als eine harte Regel ist. Selten ist die vollständig RESTful-Anwendung, die alle Regeln befolgt. Ich verwende ein verschlüsseltes Cookie, um die Benutzersitzungsdaten mit einem Standardauthentifizierungsablauf zu speichern, der einmal erfolgt und in einer Woche abläuft. Datenübertragungen erfolgen über SSL, um MITM-Angriffe zu verhindern, und eine modifizierte Backbone-Synchronisierung sendet ein CSRF-Token zusammen mit jedem POST, PUT, DELETE, um Cross-Site-Request-Fälschungen zu verhindern. Wahrscheinlich "gut genug" für die soziale App, an der ich arbeite. Vielleicht nicht, wenn Sie Banküberweisungen tätigen und so. Hoffe, diese Art von gibt Ihnen einen Bezugspunkt in der Beurteilung, was Sie tun möchten.

    
jmk2142 27.08.2012 23:44
quelle