Cómo revisar código MTS/ASP la vulnerabilidad de CSSI

Seleccione idioma Seleccione idioma
Id. de artículo: 253121 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Resumen

En este artículo se describe cómo identificar y corregir aplicaciones de páginas de Server y Active Server (ASP) de Microsoft transacciones que son susceptibles a problemas de seguridad (CSSI) secuencias de comandos entre sitios. Sólo de entrada que se valida correctamente o con formato hace que la aplicación sea vulnerable a ataques.

Más información

CSSI problemas tienen su raíz en la forma que una aplicación trata la validación de datos y formato, por lo que mejor se abordamos desde la capa de presentación.

Esta capa normalmente constará de las páginas ASP y ocasionalmente pueden incluir algunos componentes que ayudan en la representación de HTML de la página ASP para mostrar.

En este último caso es importante observar que aunque la aplicación debe realizar las mismas operaciones para protegerse de CSSI como una aplicación sólo ASP, su implementación física hará que parte del formato o validar código para ejecutar en las páginas ASP y algunos en el componente. Para obtener información detallada en CSSI y ASP, consulte el siguiente artículo de Knowledge Base:
253119Cómo revisar código ASP la vulnerabilidad de CSSI
Los pasos siguientes le ayudarán a identificar y corregir aplicaciones ASP susceptibles a CSSI:
  1. Busque ASP o componente de código que genera HTML que se va a mostrar. Hay dos escenarios típicos:
    • El componente crea y devuelve una cadena HTML que ASP se escribirá directamente en la respuesta.
    • El componente llama a Response.Write internamente para escribir directamente en la página. Normalmente se obtiene la referencia de objeto de respuesta de ObjectContext llamando GetObjectContext.Item("Response").
  2. Determinar si el resultado HTML incluye datos de la aplicación. Estos datos pueden provenir de una gran variedad de orígenes, como bases de datos, archivos, cookies, otras variables de objeto y así sucesivamente.
  3. Determinar una solución apropiada. Tener encuentra ASP o componente de código que genera HTML utilizando algunas entradas, debe determinar una solución apropiada para su aplicación específica. Soluciones incluyen (pero no se limitan a) validar y filtrado de datos no válidos o codificación se.

Directrices para dar formato

Estas instrucciones le ayudará a identificar dónde para enfrentarse a formato correctamente.

Al escribir información en una página, los datos específicos de aplicación deben ser HTMLEncoded. Es importante no que HtmlEncode etiquetas que se pretende terminan en la página HTML. Por lo tanto, si las funciones del componente devuelven HTML, el HTMLEncode tiene que realizarse dentro de ellos.

Para HTMLEncode una cadena de un componente, necesita una referencia al objeto de servidor ASP. Se puede obtener esta referencia de la colección de MTS ObjectContext.Items:
sGoodHTML = GetObjectContext.Item("Server").HTMLEncode(sRawData) 
				
ejemplo : este código generará las filas de la tabla con los valores tomados de un conjunto de registros. Este código no codifica la salida:
Do While Not oRecordset.EOF
     sHTML = sHTML & "<TR>" 
     sHTML = sHTML & "<TD>" & oRecordset("FirstName") & "</TD>"
     sHTML = sHTML & "<TD>" & oRecordset("Address") & "</TD>"
     sHTML = sHTML & "</TR>" 
Loop
				
cuando este código es fija, tenga en cuenta que los propios valores son HTMLEncoded, en lugar de toda la cadena HTML:
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
				
Nota el uso de la referencia de objeto intermedio oServer . Esto se incluye para beneficiarse de enlace y para evitar resolver la búsqueda ObjectContext.Item cada vez. Para declarar un objeto como ASPTypeLibrary.Server, debe incluir una referencia a "Biblioteca de objetos de Microsoft Active Server páginas".

Por favor, tenga en cuenta las siguientes directrices:
  • Componentes empresariales no deben llamar a HTMLEncode (a menos que también está representando HTML). Esto es una tarea de la capa de presentación.
  • Generalmente, componentes mediante HTMLEncode o cualquiera de los objetos ASP deben ejecutar físicamente en el mismo equipo como Internet Server (IIS).
  • Soluciones incluyen (pero no se limitan a) validar parámetros de entrada y formato de parámetros de entrada.

Referencias

Para obtener más información, consulte el Advisory de Computer Emergency Response Team (CERT) de Carnegie Mellon University en el siguiente sitio Web:
http://www.cert.org/advisories/CA-2000-02.html
Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
252985Cómo evitar la seguridad de secuencias de comandos entre sitios se emite para las aplicaciones Web
253120Cómo revisar Visual InterDev genera código de la vulnerabilidad de CSSI
253117Cómo evitar la vulnerabilidad de Internet Explorer y Outlook Express CSSI

Propiedades

Id. de artículo: 253121 - Última revisión: martes, 04 de febrero de 2014 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft Transaction Services 2.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbcssi kbhowto KB253121 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 253121

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