2011-03-09 12 views
5

Estoy aprendiendo ASP.NET ahora y estoy un poco confundido por __VIEWSTATE y __EVENTVALIDATION.¿Se pueden usar __VIEWSTATE y __EVENTVALIDATION para investigar con el fin de violar una aplicación web?

  1. ¿Sería posible leer el valor de esos dos artículos para aprender sobre el funcionamiento interno de la aplicación y, posiblemente, la manipulan. Por ej. las personas escriben que __VIEWSTATE contiene información sobre las propiedades de los elementos que no se envían a través de POSTBACK, como una etiqueta, por ejemplo. ¿No sería posible manipular el valor de las etiquetas en una aplicación para que muestre información incorrecta?

  2. ¿Sería posible cambiar el valor de __VIEWSTATE con un valor mucho más grande para que cuando se publique de nuevo en el servidor agregue una sobrecarga importante para descomprimir y/o escribir la información y básicamente hacer un DDOS?

+0

Gracias a todos por las buenas respuestas! –

Respuesta

6
  1. Sí, es posible leer los valores del estado de vista. Está codificado en base64, lo que no significa que esté encriptado, así que para leer sus valores, todo lo que necesita hacer es convertirlo de base64 a UTF-8 y podrá leer su contenido. Try it out here for yourself Cada control se enumera y varias de sus propiedades. Con respecto a la manipulación de los contenidos, esto es posible pero difícil ya que los contenidos son validados antes de ser procesados ​​en el servidor.

  2. Sí, es posible, si su sitio está destinado a ser atacado y se enviaron un gran número de grandes solicitudes con viewstates grandes, tendrá el efecto correspondiente en el servidor.

Tome un vistazo a la siguiente:

0
  1. Sí, sin embargo, sería solamente mostrar de forma incorrecta para ese cliente. Cuando se vuelve peligroso es cuando lee estos valores para realizar su lógica comercial. En general, las aplicaciones web nunca confían en la información del cliente. El valor que viewstate tiene hashed para intentar detectar modificaciones con la configuración predeterminada de ASP.NET, pero todavía puede ser manipulado por alguien con suficiente deseo.

  2. Sí, es solo un campo en el formulario que recibe del cliente. Por lo tanto, puede ser manipulado.

Cuestiones relacionadas