Comprobación de interoperabilidad de servicios web
La comprobación de Interoperabilidad de Servicios web (WS-I) examina tanto las solicitudes como las respuestas para el cumplimiento del estándar WS-I, y bloquea aquellas solicitudes y respuestas que no se ajustan a este estándar. El propósito de la comprobación WS-I es bloquear las solicitudes que podrían no interactuar con otro XML de forma adecuada. Un atacante puede utilizar incoherencias en la interoperabilidad para lanzar un ataque a la aplicación XML.
Si utiliza el asistente o la GUI, en el cuadro de diálogo Modificar comprobación de interoperabilidad de servicios web, en la ficha General puede habilitar o inhabilitar las acciones Bloquear, Registro, Estadísticas y Aprendizaje.
Si utiliza la interfaz de línea de comandos, puede escribir el siguiente comando para configurar la comprobación de interoperabilidad de servicios web:
set appfw profile <name> -xmlWSIAction [block] ][log] [learn] [stats] [none]
Para configurar reglas individuales de interoperabilidad de servicios web, debe usar la GUI. En la ficha Comprobaciones del cuadro de diálogo Modificar comprobación de interoperabilidad de servicios web, seleccione una regla y haga clic en Habilitar o Inhabilitar para habilitar o inhabilitar la regla. También puede hacer clic en Abrir para abrir el cuadro de mensaje Detalle de interoperabilidad de servicios web para esa regla. El cuadro de mensaje muestra información de solo lectura sobre la regla. No puede modificar ni realizar otros cambios de configuración en ninguna de estas reglas.
La comprobación WS-I utiliza las reglas enumeradas en WS-I Basic Profile 1.0. WS-I ofrece las mejores prácticas para desarrollar soluciones de servicios web interoperables. Las comprobaciones WS-I se realizan solo en mensajes SOAP.
A continuación se proporciona una descripción de cada regla estándar de WSI:
Regla | Descripción |
---|---|
BP1201 | El cuerpo del mensaje debe ser un jabón:sobre con espacio de nombres. |
R1000 | Cuando un SOBRE es un error, el elemento SOAP:Fault NO DEBE tener elementos secundarios que no sean faultcode, faultstring, faultactor y detail. |
R1001 | Cuando un SOBRE es un error, los elementos secundarios del elemento SOAP:Fault DEBE estar sin calificación. |
R1003 | Un RECEPTOR DEBE aceptar mensajes de error que tengan cualquier número de atributos calificados o no calificados, incluido cero, que aparecen en el elemento de detalle. El espacio de nombres de atributos calificados puede ser cualquier otra cosa que no sea el espacio de nombres del elemento de documento calificado Envelope. |
R1004 | Cuando un ENVELOPE contiene un elemento faultcode, el contenido de ese elemento debe ser uno de los códigos de error definidos en SOAP 1.1 (proporcionando información adicional si es necesario en el elemento de detalle), o un Qname cuyo espacio de nombres está controlado por la autoridad especificadora de la falla (en ese orden de preferencia). |
R1005 | Un SOBRE NO DEBE contener el atributo SOAP:encodingStyle en cualquiera de los elementos cuyo espacio de nombres es el mismo que el espacio de nombres del elemento de documento calificado Envelope. |
R1006 | Un sobre NO DEBE contener atributos SOAP:encodingStyle en cualquier elemento secundario de SOAP:Body. |
R1007 | Un sobre descrito en un enlace rpc-literal NO DEBE contener el atributo SOAP:encodingStyle en cualquier elemento que sea nieto de SOAP:body. |
R1011 | Un sobre NO DEBE tener ningún elemento secundario de SOAP:Envelope siguiendo el elemento SOAP:Body. |
R1012 | Un MENSAJE DEBE serializarse como UTF-8 o UTF-16. |
R1013 | Un SOBRE que contenga un atributo SOAP:mustUnderstand DEBE utilizar solo las formas léxicas 0 y 1. |
R1014 | Los secundarios del elemento SOAP:Body en un SOBRE DEBE tener el espacio de nombres calificado. |
R1015 | Un RECEPTOR DEBE generar un error si encuentra un sobre cuyo elemento de documento no es SOAP:Envelope. |
R1031 | Cuando un ENVELOPE contiene un elemento faultcode, el contenido de ese elemento NO debe usar la notación de punto SOAP 1.1 para refinar el significado de la falla. |
R1032 | Los elementos SOAP:Envelope, SOAP:Header y SOAP:Body en un SOBRE NO DEBE tener atributos en el mismo espacio de nombres que el del elemento de documento calificado Envelope |
R1033 | Un SOBRE NO DEBERÍA contener la declaración de espacio de nombres: xmlns:xml=http://www.w3.org/XML/1998/namespace.
|
R1109 | El valor del campo de encabezado HTTP SoapAction en una solicitud HTTP MESSAGE DEBE ser una cadena entre comillas. |
R1111 | Una INSTANCIA DEBEN utilizar un código de estado HTTP 200 OK en un mensaje de respuesta que contiene un sobre que no es un error. |
R1126 | Una INSTANCIA DEBE devolver un código de estado HTTP de 500 Error interno del servidor si el sobre de respuesta es un error. |
R1132 | Un mensaje de solicitud HTTP DEBE utilizar el método HTTP POST. |
R1140 | Se debe enviar un MENSAJE mediante HTTP/1.1. |
R1141 | DEBE enviarse un MENSAJE mediante HTTP/1.1 o HTTP/1.0. |
R2113 | Un SOBRENC:ArrayType NO DEBE incluir el atributo soapenc:ArrayType. |
R2211 | Un SOBRE descrito con un enlace rpc-literal NO DEBE tener el atributo xsi:nil con un valor de 1 o true en los accesores de pieza. |
R2714 | Para operaciones unidireccionales, una INSTANCIA NO DEBE devolver una respuesta HTTP que contenga un sobre. Específicamente, la entidad de respuesta HTTP debe estar vacía. |
R2729 | Un SOBRE descrito con un enlace rpc-literal que es una respuesta DEBE tener un elemento contenedor cuyo nombre es el wsdl:nombre_de_operación correspondiente sufijo con stringResponse. |
R2735 | Un SOBRE descrito con un enlace rpc-literal DEBE colocar los elementos de acceso de pieza para los parámetros y devolver el valor en ningún espacio de nombres. |
R2738 | Un SOBRE DEBE incluir todos los encabezados soapbind:especificados en un wsdl:input o wsdl:output de un wsdl:operation de un wsdl:binding que lo describe. |
R2740 | Un wsdl:binding en una DESCRIPCIÓN DEBEN contener un soapbind:fault que describa cada falla conocida. |
R2744 | Un mensaje de solicitud HTTP DEBE contener un campo de encabezado HTTP SoapAction con un valor comillas igual al valor del atributo SoapAction de soapbind:operation, si está presente en la descripción WSDL correspondiente. |