Pregunta

Quiero para asegurarse de asegurarse de que nada malo se mete en la referencia a una página de error.

¿Qué debería ser la comprobación con el fin de validar el encabezado http.

a continuación es mi código actual:

// Ensure the referrer header is good
if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
    this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host))
{

esto producirá un acunetix búsqueda que utiliza C %3 y %3E en lugar de < y > por ejemplo, así que obviamente necesita para cubrir la codificación html - hay algo que me estoy perdiendo?

Actualización Puedo coger todos los acunetix escaneados utilizando el siguiente código:

if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
    this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host) &&
    !Regex.IsMatch(this.Request.UrlReferrer.ToString(),
                   "%3C",
                   RegexOptions.IgnoreCase))
{
¿Fue útil?

Solución

  

Quiero garantizar garantizar nada adverso se mete en la de referencia en una página de error.

A continuación, siempre HTML escapar cualquier cadena - incluyendo URL de referencia -. Que la salida a la página de error

Tratar de escoger y la entrada de lista negra que contiene caracteres potencialmente peligrosos en una base de caso por caso, está haciendo al revés. Probablemente no va a coger todos los ataques posibles, y se le innecesariamente no permitir URLs válidos. (Es perfectamente razonable tener una URL con ‘% 3C’ pulg.)

Otros consejos

this.Request.UrlReferrer puede ser nula, si no se proporcionó de referencia o ha participado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top