Citrix ADC

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 ENVELE 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 de especificación 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 SOBRE contiene un elemento faultcode, el contenido de ese elemento NO DEBE utilizar la notación de puntos 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 Aceptar 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 nombre wsdl:operation name 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.

Comprobación de interoperabilidad de servicios web