Frage

Snoop ermöglicht es Ihnen, innerhalb der Anwendung und Änderung von Elementeigenschaften zu suchen. Es ist ein großer Vorteil für Entwickler, sondern kann ein Sicherheitsproblem in einigen Fällen, wie wenn wir Benutzer haben, wie zu sehen in Orten, wo sie nicht auf der Suche werden sollen. Gibt es eine Möglichkeit, etwas zu Block-Anwendungen wie Snoop aus „Snooping“ Ihrer Anwendung zu tun?

Und wenn es keine Möglichkeit, es zu blockieren, was Sie empfehlen, um Sicherheitsrisiken zu minimieren?

Snoop ist ein Dienstprogramm, das Sie durchsuchen visuelle Struktur einer WPF-Anwendung und anzeigen und ändern Eigenschaften ermöglicht. Es ist sehr nützlich, wenn Sie debuggen etwas versuchen und keine Ahnung, was los ist. Sie finden mehr hier .

Danke.

War es hilfreich?

Lösung

Mit Sicherheit richtig zu implementieren. Wenn Ihre „Sicherheit“ mit einem Werkzeug wie Snoop vereitelt wird, dann bist du es falsch zu machen.

Angenommen, es gibt einen Befehl, dass nur bestimmte Benutzer ausführen kann. Es klingt wie der einzige Ort, Sie erzwingen dies auf der UI-Ebene ist (die entsprechende Schaltfläche, zum Beispiel zu deaktivieren). Wenn das der Fall, du hast Recht - ich könnte leicht Snoop verwenden, um die Schaltfläche zu aktivieren und den Befehl auszuführen. Aber Sie sollten die Sicherheitseinschränkungen auf dem Server durchzusetzen, oder vielleicht in Ihrer Befehlsausführungslogik, wenn Sie keinen Server haben. Grundsätzlich Sicherheit sollte so nah an die Sache implementiert werden Sie versuchen, wie möglich zu schützen. Sicherheit auf der UI-Ebene ist nur für Bequemlichkeit des Benutzers.

Andere Tipps

Es gibt tatsächlich eine Möglichkeit zu erkennen, ob Ihre Anwendung durch das Snoop-Programm „abgehört“ werden. Die Lösung, die ich geben werde, ist kein Allheilmittel, und wenn jemand wirklich will, um Ihre Anwendung schnüffeln, würden sie den Snoop-Quellcode (es ist ein Open-Source-Projekt) ändern müssen.

Was ist eigentlich Schnüffler tut, ist es eine Versammlung in Ihre Anwendung injiziert, und die injizierten Baugruppe rekursiv überprüft Ihre Anwendungen visuelle Struktur an der Wurzel beginnen. Mit anderen Worten, Snoop tatsächlich läuft innen Ihre Bewerbung. That being said, ist die Lösung ein Ereignis zu erhöhen, wenn die Snoop-Baugruppe in Ihre Anwendung injiziert wird.

Als erstes müssen Sie das Montage-loaded Ereignis irgendwo in Ihrer Anwendung (vorzugsweise das begginging) abonnieren:

AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);

Dann würden Sie die Prozedur ein wenig wie diese umzusetzen:

        void CurrentDomain_AssemblyLoad(object sender, AssemblyLoadEventArgs args)
    {
        if (args.LoadedAssembly.FullName.StartsWith("ManagedInjector"))
            MessageBox.Show("hey you, stop snooping");//and shut down your application.
    }

Sie würden wahrscheinlich brauchen diese Lösung für echte Silber-Kugel-Lösung zu verbessern, aber zumindest diese Lösung wird auf jeden Fall die aktuelle neueste Version von Snoop stoppen wurde laufen wie (ohne den Code geändert). Die bessere Lösung wäre, um sicherzustellen, dass keine externen Baugruppen in Ihre Anwendung injiziert werden.

Allerdings ist Kent noch richtig in der Tatsache, dass ein Dienstprogramm wie Snoop sollte keine Sicherheitslücken verursachen, da die Sicherheit nicht auf der UI-Ebene umgesetzt werden sollte. Aber zumindest das zeigt, wie man die Leute aus „Snooping“ Ihrer Anwendung verhindern.

Große Antworten für eine sehr gute Frage,

Ich möchte ein Beispiel für das Passwort hinzuzufügen, die nie in Ihrem Datacontext gespeichert werden sollen, wie Snoop Prüfung auch die Datacontext der Benutzeroberfläche, so dass, wenn Sie die richtige Kontrolle PasswordBox verwenden, werden Sie feststellen, dass Sie nicht binden können das Passwort Eigentum, das heißt, auch wenn Sie die Anwendung schnüffeln können Sie das Passwort nicht erhalten, da es nicht in irgendeiner Eigenschaft

gespeichert

Aber wir fanden viele Menschen, die versuchen, eine Arbeit zu schaffen um (Helfer, Verhaltensweisen, Usercontrol ...), um das Passwort zu binden, aber sie vergessen, dass Snoop kann es so bekommen

So Ihr Server soll nie Ihren Klienten vertrauen, sollte jedes Mal, wenn das Recht Privileg überprüfen

(wie wir die Client-Anfrage schnuppern können Fiddler mit für exp dann eine custome Anfrage von Pass-Client-Anwendung Sicherheit Rebuild)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top