Gewusst wie: Überprüfen Sie MTS-ASP-Code für CSSI Sicherheitsanfälligkeit

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 253121 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel beschreibt die identifizieren und Beheben von Transaction Server-Active Server Pages ASP Anwendungen (Microsoft), die Cross-Site scripting Sicherheitsprobleme (CSSI) anfällig sind. Nur Eingaben, die nicht richtig überprüft oder formatiert ist macht die Anwendung anfällig für Angriffe.

Weitere Informationen

CSSI Probleme sind die Verarbeitung eine Anwendung Gültigkeitsprüfung und Formatierung, Stamm, sodass es am besten von der Präsentationsschicht geleitet wird.

Diese Schicht wird normalerweise von ASP-Seiten bestehen, und gelegentlich kann es einige Komponenten, die unterstützen die Darstellung der HTML-Code für die ASP-Seite anzeigen enthalten.

Im letzteren Fall ist es wichtig zu beachten, dass zwar die Anwendung die gleichen Operationen selbst Schutz vor CSSI als reine ASP-Anwendung durchführen sollten, deren physische Implementierung Teil des Codes überprüfen/Formatierungen in die ASP-Seiten ausgeführt und einige in der Komponente führt. Ausführliche Informationen zu CSSI und ASP finden Sie in der folgenden Microsoft Knowledge Base:
253119Gewusst wie: Überprüfen von ASP-Code für CSSI Sicherheitsanfälligkeit
Die folgenden Schritte helfen Ihnen identifizieren und Korrigieren von ASP-Anwendungen CSSI anfällig:
  1. Suchen Sie nach ASP oder Komponente Code, HTML-Code angezeigt werden generiert. Es gibt zwei typische Szenarios:
    • Die Komponente erstellt und gibt eine HTML-Zeichenfolge, die ASP direkt in die Antwort schreiben wird.
    • Die Komponente ruft Response.Write intern direkt auf die Seite schreiben. Normalerweise ist der Objektverweis Antwort aus der ObjectContext durch Aufrufen von GetObjectContext.Item("Response") abgerufen.
  2. Bestimmen Sie, ob die HTML-Ausgabe Anwendungsdaten enthält. Diese Daten können stammen aus einer Vielzahl von Quellen, z. B. Datenbanken, Dateien, Cookies, weitere Objektvariablen und so weiter.
  3. Bestimmen Sie eine geeignete Lösung. ASP oder Komponente gefunden müssen einige Eingaben Code, HTML mit generiert, Sie eine geeignete Lösung für Ihre spezielle Anwendung bestimmen müssen. Lösungen umfassen (sind aber nicht beschränkt auf) ungültige Daten überprüfen/Filterung oder Codierung.

Richtlinien für die Formatierung

Diese Richtlinien helfen Ihnen, wo Sie lösen Formatierung entsprechend zu identifizieren.

Wenn Sie Informationen zu einer Seite zu schreiben, müssen die Daten bestimmte Anwendung HTMLEncoded sein. Es ist wichtig nicht zu HTMLEncode-tags, die in der HTML-Seite landen. Wenn Ihre Komponente Funktionen HTML zurückgegeben wird, hat die HTMLEncode daher darin enthaltenen erfolgen.

HTMLEncode eine Zeichenfolge aus einer Komponente benötigen Sie einen Verweis auf die ASP-Server-Objekt. Sie können diesen Verweis von der MTS-ObjectContext.Items Auflistung erhalten:
sGoodHTML = GetObjectContext.Item("Server").HTMLEncode(sRawData) 
				
Beispiel : dieser Code erzeugt Zeilen mit Werten aus einem Recordset übernommen. Dieser Code die Ausgabe nicht codiert:
Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oRecordset("FirstName") & "</TD>"
     sHTML = sHTML & "<TD>" & oRecordset("Address") & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop
				
bei diesem Code behoben wird, Beachten Sie, dass die Werte selbst HTMLEncoded, anstatt die gesamte HTML-Zeichenfolge:
Dim oServer As ASPTypeLibrary.Server

Set oServer = GetObjectContext.Item("Server")

Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("FirstName")) & "</TD>"
     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("Address")) & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop

Set oServer = Nothing
				
wichtig die Verwendung des Objektverweises intermediate oServer . Dies ist die frühe Bindung nutzen und zu vermeiden, lösen die ObjectContext.Item-Suche jedes Mal enthalten. Zum Deklarieren eines Objekts als ASPTypeLibrary.Server müssen Sie einen Verweis auf "Microsoft Active Server Pages Objektbibliothek." enthalten.

Bitte berücksichtigen Sie die folgenden Richtlinien:
  • Geschäftskomponenten sollten Sie HTMLEncode (sofern Sie auch HTML-Rendern sind) nicht aufrufen. Dies ist eine Aufgabe der Darstellungsschicht.
  • Im Allgemeinen sollte Komponenten mithilfe von HTMLEncode oder eine ASP-Objekte physisch auf demselben Computer wie Internet Information Server (IIS) ausgeführt werden.
  • Lösungen umfassen (sind aber nicht beschränkt auf) Eingabeparameter überprüft und die Formatierung Eingabeparameter.

Informationsquellen

Weitere Informationen finden Sie die folgende Empfehlung aus dem Computer Emergency Response Team (CERT) an der Carnegie Mellon University:
http://www.cert.org/advisories/CA-2000-02.html
Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
252985Gewusst wie: Verhindern von Cross-Site scripting Sicherheitsprobleme für Webanwendungen
253120Gewusst wie: Überprüfen von Visual InterDev generiert Code für die CSSI-Sicherheitsanfälligkeit
253117Wie Sie Internet Explorer und Outlook Express CSSI Sicherheitsanfälligkeit zu verhindern

Eigenschaften

Artikel-ID: 253121 - Geändert am: Donnerstag, 30. Januar 2014 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Transaction Services 2.0
Keywords: 
kbnosurvey kbarchive kbmt kbcssi kbhowto KB253121 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 253121
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com