2016-04-11 12 views
0

Lassen Sie uns sagen, dass ich eine Authentifizierungsmethode, wo ich einen http Post tun ein Token vom Server zu erhalten:Welche Sicherheitsbedrohungen hilft mir btoa() in Javascript?

$http({ 
    method: 'POST', 
    url: '/Token', 
    processData: false, 
    contentType: 'application/x-www-form-urlencoded', 
    data: "grant_type=password&username=" + UserName + "&password=" + Password 
... 

Hier habe ich den Benutzernamen und das Passwort im Klartext senden.

Wenn ich stattdessen meinen Benutzernamen und Passwort mit der JavaScript-Funktion btoa() verschlüsseln (die auch verwendet wird, und empfohlen, How can you encode a string to Base64 in JavaScript? verwendet werden) wie folgt aus:

$http({ 
    method: 'POST', 
    url: '/Token', 
    processData: false, 
    contentType: 'application/x-www-form-urlencoded', 
    data: "grant_type=password&username=" + btoa(UserName) + "&password=" + btoa(Password) 
... 

Welche Sicherheitsbedrohungen ist diese wirklich helfen mir mit ? Ich meine, die Tatsache, dass mein JavaScript-Code für jeden auf meiner Website erreichbar ist, ist es möglich, das Skript zu finden, das btoa() aufruft. Dann können sie einfach den Benutzernamen und das Passwort mit atob() entschlüsseln und ich bin zurück auf Platz eins.

+0

Sicherheit durch Dunkelheit. es ist auch keine Verschlüsselung. –

Antwort

2

Die btoa() and atob() Funktionen bieten keine Sicherheitsverbesserungen, da sie nicht verschlüsselt/entschlüsselt werden, sondern nur Daten in Textdarstellung codieren/decodieren und zurück zum ursprünglichen Aussehen. Normalerweise werden die Funktionen für binäre Daten, wie Bilder, etc. verwendet.

Mit einer Zeichenfolge codiert mit btoa() kann jeder leicht mit seiner entgegengesetzten Funktion entschlüsseln. Klingt nicht sicher, tut es;)

+0

Ja, danke, dass Sie das erledigt haben. Ich verwechselte codieren vs verschlüsseln .. –

Verwandte Themen