2016-08-25 2 views
-1

gelesen werden kann. Hier finden Sie den Screenshot, wo das Passwort sichtbar ist, wenn Sie das Entwicklerwerkzeug in Chrome oder Firebug in Firefox verwenden.So verstecken Sie das Passwort so, dass es nicht durch das Developer Tool

Ich habe unter Kontrolle verwendet. enter image description here

<asp:textbox id="txtPassword" CssClass="icon-password" TabIndex="2" runat="server" textmode="Password"></asp:textbox> 

Ich möchte Passwort so verbergen, dass es an Entwickler-Tool oder andere Methoden sichtbar sein können.

+4

Welches Problem versuchen Sie zu lösen? Dies ist die Art und Weise, wie ein HTML-Passwort funktioniert und ich bezweifle, dass es einen Weg gibt, dies zu umgehen.Der einzige Weg wäre, jeden Tastenanschlag zu verschlüsseln, aber dann wäre Ihre Verschlüsselungslogik clientseitig und gleichzeitig anfällig. – Filburt

+2

Wem versteckst du das Passwort? Die Person, die es tippt? – Blorgbeard

+0

Ich habe die Funktion Remember me implementiert. Meine Sorge ist, wenn jemand die Website öffnet und wenn dieser Benutzer das Kontrollkästchen "Erinnere mich" aktiviert hat, wird das Passwortfeld bereits ausgefüllt und das Passwort kann vom Developer Tool identifiziert werden. In diesem Szenario wird das Kennwort für diesen Benutzer verfügbar sein. Ich möchte es auch im Developer Tool sichtbar machen, um es gesichert zu halten. –

Antwort

-3

Ich gehe davon aus, dass die Frage des OP auch dann gültig ist, wenn ich den Anwendungsfall nicht vollständig verstehe. Vielleicht macht sich das OP Sorgen um Firmenbenutzer, die ein Unternehmenskennwortverwaltungswerkzeug verwenden, das es dem Benutzer ermöglichen kann, sich in verschiedenen Anwendungen anzumelden, ohne das Kennwort tatsächlich zu kennen. In diesem Fall können die Entwicklerwerkzeuge dem Angestellten erlauben, etwas ruchloses zu tun, z.B. nimm ein Passwort außerhalb des Unternehmens und gib es einer böswilligen Partei oder nutze es von außerhalb, wo Auditing-Kontrollen möglicherweise nicht vorhanden sind, so etwas.

Leider, selbst wenn Sie die Ansicht des Passworts in der "Inspect Element" -Fenster deaktivieren, konnte der Benutzer immer noch sehen, greifen Sie es durch Eingabe von Code in die Konsole, z. Console.Log(Form.txtPassword).

Auch wenn Sie cleveren Code schreiben, um den Kennwortwert im Textfeld zu verschlüsseln und an anderer Stelle zu speichern (z. B. in einer Javascript-Variablen), kann der Benutzer dennoch alle Javascript-Variablen mit der gleichen Art von Code ausgeben.

Jetzt könnten Sie möglicherweise disable the Chrome console wie Facebook tut. Der Benutzer kann das Kennwort jedoch weiterhin im Bereich "Netzwerk" sehen. Ohne die Anwendung auf dem Webserver zu ändern, kann man nicht vermeiden, dass - das Passwort irgendwann an die Website weitergegeben werden muss.

Stattdessen würde ich empfehlen, die Chrome-Entwicklungstools vollständig zu deaktivieren, indem Sie die Richtlinie DeveloperToolsDisabled verwenden, die in der Registrierung über eine Group Policy festgelegt werden kann. Wenn Sie schon dabei sind, sollten Sie wahrscheinlich die Installation von Tools deaktivieren, mit denen Sie den Datenverkehr anzeigen können, z. B. Fiddler.

2

Bei Tastendruck speichern Sie jeden Schlüssel vorübergehend in Ihrer Datenbank (oder Speicher) und ersetzen Sie dann den Schlüssel auf der Webseite. Klicken Sie bei der Anmeldung auf Ihre Methode, um das Abfragefeld in der Datenbank tatsächlich einzuloggen und den übergebenen Wert durch den Eintrag zu ersetzen. Dies ist gefährlich, da Sie alles aus Rücktaste, Tastenanschlag, usw. kümmern müssen, aber es würde funktionieren.

Ich glaube jedoch, dass Sie sich darüber keine Sorgen machen sollten. Wenn die Person, die es betritt, es sehen will, was ist das Problem? Wenn jemand anderes versucht, es zu sehen, während die Person eintritt, drücken Sie sie einfach vom Computer.

+1

Das Hauptproblem dabei ist, dass jemand, der auf die Dev-Tools zugreifen kann, den Zugriff auch gerne mag, wo auch immer man ihn speichert, also was nützt das? –

+1

@KevinWells nein können sie nicht? Wenn Sie Informationen an eine Methode SetPassword senden, können sie sicher auch Daten an SetPassword senden, aber es gibt keine externe Methode zum Abrufen dieser Daten, es sei denn, Sie schreiben sie explizit. Die Informationen werden auf dem Server gespeichert, der Client kann auf keinen Fall darauf zugreifen. – Dispersia

+2

Ah, Sie schlagen vor, jedes einzelne Zeichen an den Server zu senden. Ich dachte, Sie wollten es vorübergehend in einer lokalen Datenbank oder Speicher auf dem Client speichern, und dann am Ende an den Server senden, mein Fehler –

2

Mit den Entwicklertools erhalten Sie Zugriff auf die gesamte virtuelle DOM- und JavaScript-Maschine.

Es ist nicht möglich, es vor den Dev-Tools zu verbergen. Im besten Fall können Sie das Passwort verschleiern.

Die eigentliche Frage ist: Warum möchten Sie es verstecken? Es läuft in einer sicheren Umgebung. Nur der Benutzer (der sein eigenes Passwort kennen sollte) sollte darauf zugreifen können.

Sie sollten davon ausgehen, dass der Benutzer in der Lage ist, jedes auf seinem Computer laufende Javascript zu ändern.

+0

Ich gab ein Beispiel dafür, wie Sie es vor Dev-Tools (oder irgendetwas Client-Seite) verstecken konnte neben etwas wie Fiedler). – Dispersia

+0

Ich beginne meine Antwort, bevor ich deine sah. Bei der Arbeit an etwas anderem abgelenkt. Außerdem scheint Ihre Lösung zweifelhaft zu sein. Es wird zu schrecklichen Bugs führen. Ich denke, OP sollte überdenken, ob er es machen will. – OzieGamma

+0

Ich stimme zu, ich sage sogar, es ist ziemlich gefährlich, aber es gibt wahrscheinlich andere bessere Möglichkeiten, es zu tun, bedeutet nicht, dass es keine gibt: P – Dispersia

Verwandte Themen