ADC

Interoperabilitätsprüfung der Webdienste

Die Web Services Interoperability (WS-I) -Prüfung überprüft sowohl Anfragen als auch Antworten auf die Einhaltung des WS-I-Standards und blockiert Anfragen und Antworten, die diesem Standard nicht entsprechen. Der Zweck der WS-I-Prüfung besteht darin, Anforderungen zu blockieren, die möglicherweise nicht ordnungsgemäß mit anderen XML-Dateien interagieren. Ein Angreifer kann Inkonsistenzen in der Interoperabilität nutzen, um einen Angriff auf Ihre XML-Anwendung zu starten.

Wenn Sie den Assistenten oder die GUI verwenden, können Sie im Dialogfeld Interoperabilitätsprüfung für Webdienste ändern auf der Registerkarte Allgemein die Aktionen Block, Log, Statistics und Learn aktivieren oder deaktivieren.

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie den folgenden Befehl eingeben, um die Interoperabilitätsprüfung der Web Services zu konfigurieren:

  • set appfw profile <name> -xmlWSIAction [block] ][log] [learn] [stats] [none]

Um einzelne Interoperabilitätsregeln für Webdienste zu konfigurieren, müssen Sie die GUI verwenden. Wählen Sie im Dialogfeld Interoperabilitätsprüfung für Webdienste ändern auf der Registerkarte Prüfungen eine Regel aus und klicken Sie auf Aktivieren oder Deaktivieren, um die Regel zu aktivieren oder zu deaktivieren. Sie können auch auf Öffnen klicken, um das Meldungsfeld Web Services Interoperability Detail für diese Regel zu öffnen. Im Meldungsfeld werden schreibgeschützte Informationen zur Regel angezeigt. Sie können keine dieser Regeln ändern oder andere Konfigurationsänderungen an ihnen vornehmen.

Die WS-I-Prüfung verwendet die in WS-I Basic Profile 1.0 aufgeführten Regeln. WS-I bietet bewährte Methoden für die Entwicklung interoperabler Web Services-Lösungen. WS-I-Prüfungen werden nur für SOAP-Nachrichten durchgeführt.

Eine Beschreibung der einzelnen WSI-Standardregeln finden Sie unten:

Regel Beschreibung
BP1201 Der Nachrichtentext sollte ein soap:envelope mit Namespace sein.
R1000 Wenn ein ENVELOPE ein Fehler ist, darf das soap:Fault-Element NUR die untergeordneten Elemente faultcode, faultstring, faultactor und detail haben.
R1001 Wenn ein ENVELOPE ein Fehler ist, müssen die untergeordneten Elemente des Elements SOAP:Fault nicht qualifiziert sein.
R1003 Ein RECEIVER MUSS Fehlermeldungen akzeptieren, die eine beliebige Anzahl qualifizierter oder nicht qualifizierter Attribute aufweisen, einschließlich Null, die auf dem Detailelement angezeigt werden. Der Namespace qualifizierter Attribute kann ein beliebiger anderer Namespace als der Namespace des qualifizierten Dokumentelements Envelope sein.
R1004 Wenn ein ENVELOPE ein Faultcode-Element enthält, muss der Inhalt dieses Elements entweder einer der in SOAP 1.1 definierten Fehlercodes sein (mit zusätzlichen Informationen, falls erforderlich, im Detailelement) oder ein Qname, dessen Namespace von der spezifizierenden Autorität des Fehlers kontrolliert wird (in dieser Reihenfolge der Präferenz).
R1005 Ein ENVEL MUSS NICHT SOAP:EncodingStyle-Attribut für eines der Elemente enthalten, deren Namespace dem Namespace des qualifizierten Dokumentelements Envelope entspricht.
R1006 Ein ENVELOPE darf NICHT soap:encodingStyle-Attribute für ein Element enthalten, das ein untergeordnetes Element von soap:Body ist.
R1007 Ein in einer rpc-literal-Bindung beschriebener ENVELOPE darf NICHT das soap:encodingStyle-Attribut für ein Element enthalten, das ein Enkelkind von soap:Body ist.
R1011 Ein ENVELOPE darf NICHT untergeordnete Elemente von soap:Envelope nach dem Element soap:Body haben.
R1012 EINE NACHRICHT MUSS entweder als UTF-8 oder UTF-16 serialisiert werden.
R1013 Ein ENVELOPE, der ein soap:mustUnderstand-Attribut enthält, DARF nur die lexikalischen Formulare 0 und 1 verwenden.
R1014 Die untergeordneten Elemente des SOAP:Body-Elements in einem ENVELOPE MÜSSEN Namespace-qualifiziert sein.
R1015 EIN EMPFÄNGER MUSS einen Fehler generieren, wenn er auf einen Umschlag stößt, dessen Dokumentelement nicht SOAP:Envelope ist.
R1031 Wenn ein ENVELOPE ein Faultcode-Element enthält, darf der Inhalt dieses Elements NICHT die SOAP 1.1-Punktnotation verwenden, um die Bedeutung des Fehlers zu verfeinern.
R1032 Die Elemente soap:Envelope, soap:Header und soap:Body in einem ENVELOPE DÜRFEN KEINE Attribute im gleichen Namespace wie das qualifizierte Dokumentelement Envelope haben
R1033 Ein ENVELOPE sollte NICHT die Namespace-Deklaration enthalten: xmlns:xml=http://www.w3.org/XML/1998/namespace.
R1109 Der Wert des SoapAction-HTTP-Header-Felds in einer HTTP-Anfrage MESSAGE MUSS eine Zeichenfolge in Anführungszeichen sein.
R1111 Eine INSTANCE SOLL einen 200-OK-HTTP-Statuscode für eine Antwortnachricht verwenden, die einen Envelope enthält, der kein Fehler ist.
R1126 Eine INSTANCE MUSS einen HTTP-Statuscode 500 Internal Server Error zurückgeben, wenn der Antwort-Envelope ein Fehler ist.
R1132 Eine HTTP-Anfrage MESSAGE MUSS die HTTP POST-Methode verwenden.
R1140 EINE NACHRICHT SOLLTE mit HTTP/1.1 gesendet werden.
R1141 EINE NACHRICHT MUSS entweder mit HTTP/1.1 oder HTTP/1.0 gesendet werden.
R2113 Ein Envelope MUSS NICHT das soapenc:arrayType -Attribut enthalten.
R2211 Ein ENVELOPE, der mit einer rpc-literalen Bindung beschrieben wird, DARF NICHT das xsi:nil-Attribut mit dem Wert 1 oder true für die Part-Accessoren haben.
R2714 Bei unidirektionalen Operationen DARF eine INSTANCE KEINE HTTP-Antwort zurückgeben, die einen Umschlag enthält. Insbesondere muss der Entitätshauptteil der HTTP-Antwort leer sein.
R2729 Ein Envelope, der mit einer rpc-Literal Bindung beschrieben wird, die eine Antwort ist, MUSS ein Wrapper-Element haben, dessen Name der entsprechende wsdl:Operationsname ist, der mit dem StringResponse versehen ist.
R2735 Ein ENVELOPE, der mit einer rpc-literalen Bindung beschrieben wird, MUSS die Teilzugriffselemente für Parameter und Rückgabewert in keinem Namespace platzieren.
R2738 Ein Envelope MUSS alle soapbind:Header enthalten, die auf einer wsdl:input oder wsdl:output einer wsdl:operation einer wsdl:binding angegeben sind, die sie beschreibt.
R2740 Eine wsdl:Bindung in einer DESCRIPTION sollte ein soapbind:fault enthalten, der jeden bekannten Fehler beschreibt.
R2744 Eine HTTP-Anforderung MESSAGE MUSS ein SOAPAction-HTTP-Header-Feld mit einem in Anführungszeichen angegebenen Wert enthalten, der dem Wert des soapAction-Attributs von soapbind:operation entspricht, falls in der entsprechenden WSDL-Beschreibung vorhanden ist.
Interoperabilitätsprüfung der Webdienste

In diesem Artikel