Frage

Ich bin mit der Verwendung des Kontextobjekt-Design-Musters vertraut - ein leichter Kontext-Wrapper um Gegenstände, die zwischen den Stufen geleitet werden.

Wenn man das Kontextobjekt verwenden sollte, um den Hals (nicht vertrauenswürdiger Benutzereingabe) oder der Ursprungsstufe zu verfolgen, konnte ich sehen, wie ein Empfangsschicht dynamisch filtern, kodieren oder validieren könnte.

Beispiel: Ein Benutzer sendet "HTTP / HTML-Kontextdaten, die letztendlich als Datei im System gespeichert werden. Die Datei speichern kann den Kontext erkennen und HTML-Entitäten erkennen, einem zufälligen Kennung dem Datei hochladen und die Benutzeraktion und den Dateinamen in der Datenbank verknüpfen.

Meine Frage ist: Wie ist das intelligent, als alle Filterung, Codierung und Validierung standardmäßig anzuwenden? Welche Fälle gibt es, wo der Ursprungskontext die Sicherheit verbessert, die Sicherheit jenseits von einer guten Eingabevalidierung / Kodierung?

Ich arbeite in Java / J2ee / Streben, aber dies ist verallend in anderen Sprachen und Rahmenbedingungen.

Referenzen:

http://www.corej2eeeTatterns.com/patterns2nded/contextobject.htm

http://www.cs.wustl. edu / ~ Schmidt / pdf / context-object-muster.pdf

http://www.owasp.org/index.php/category:owasp_security_analysis_of_core_j2ee_design_patterns_projekt

mit meinem danke,

-Ben

War es hilfreich?

Lösung

Ich weiß nicht, dass die Verfolgungsverfolgung zwischen Anwendungsstufen die beste Anwendung des Kontextobjektmusters ist. Wie ich es verstehe, ist ein Kontextobjekt ein Objekt, das innerhalb einer einzelnen Ebene bleibt und Dienstleistungen für mehrere Nachrichten anbietet, die diesen Tier durchlaufen.

Wenn ich dieses Gebrauch als Sicherheitsmechanismus verwenden konnte, ist die Erstellung einer expliziten Sicherheitsschicht in Ihrer Anwendung. Stellen Sie sich vor, dass, da jeder Benutzer mit Ihrem System authentifiziert, ein Sicherheitskontextobjekt innerhalb der Sicherheitsschicht für diesen Benutzer erstellt wird. Das Sicherheitskontextobjekt enthält eine Liste aller Berechtigungen dieser Benutzer. Jede Anforderung, in der das System von einem beliebigen Benutzer eintritt, muss zunächst die Sicherheitsschicht durchlaufen und gegen das Sicherheitskontextobjekt des Benutzers ausgewertet werden.

Wenn die Anforderung zulässig ist, leitet die Sicherheitsschicht den Stapel auf die höheren Schichten zur Verarbeitung. Wenn die Anforderung abgelehnt wird, gibt die Sicherheitsschicht einen Fehler an den Benutzer zurück und der Rest der Anwendung ist keiner Wiser. Die zentralisierende Sicherheitsbedenken in der Sicherheitsschicht verhindert die Streuung von Sicherheitsprüfungen in den Geschäfts- und Serviceschichten.

In diesem Fall implementiert das Sicherheitskontextobjekt das Kontextobjektmuster. Das Kontextobjekt ist langlebig, bietet einen Kontext an mehrere Benutzeranforderungen, ist jedoch nicht für die höheren oder unteren Schichten im Anforderungsstapel sichtbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top