Servicios web y WSDL Documentation Protocol

2

Supongamos que tengo un servicio web en un proyecto ASP.NET.

Si desactivo el protocolo de documentación WSDL, otros usuarios podrán:

  1. ¿agregar una referencia de servicio al servicio web?
  2. ¿Descubrir los métodos y parámetros del servicio web?

Este es el código que estoy usando para desactivar el protocolo de servicio web:

<webServices>
    <protocols>
        <remove name="Documentation"/> 
    </protocols>
</webServices>
    
pregunta Matthew 16.08.2013 - 18:33
fuente

2 respuestas

2

WSDL es un formato basado en XML que describe cómo se debe hablar con un servicio web determinado. Sin embargo, esta no es la única encarnación de esa sintaxis. El propio servidor conoce la sintaxis (por supuesto) pero también el cliente legítimo.

Si un atacante quiere saber cómo hablar con su servicio web, solo tiene que aplicar ingeniería inversa al código del cliente. El código del cliente se implementa en varios lugares, es un archivo escrito en discos y cintas de respaldo y medios de distribución, también está en la cabeza de varios desarrolladores, y el protocolo puede documentarse e imprimirse, por lo que el atacante puede escanear los contenedores de basura. en el sitio de desarrollo para obtener la información sobre la sintaxis. El WSDL solo puede ayudar al atacante, pero sería un error creer que sin el WSDL el atacante está gravemente dañado.

Como dice @Rook, permitir que su servicio web publique el WSDL es conveniente para las pruebas; También es bueno para desarrollos de interoperabilidad. Dado que cualquier política de seguridad sensata debe asumir que es pública o casi pública de todos modos, puede dejarla pública.

    
respondido por el Thomas Pornin 16.08.2013 - 19:27
fuente
3

Es posible mantener el WSDL privado, o mantenerlo en caché en el cliente. Sin embargo, esto es solo (in) security aunque obscurity . Los WSDL son útiles para generar casos de prueba contra su servicio web, y debe probar su propio servicio antes de cualquier versión importante.

    
respondido por el rook 16.08.2013 - 19:13
fuente

Lea otras preguntas en las etiquetas