Frage

Ich will nichts, um sicherzustellen, gewährleisten untoward wird in den Referrer auf eine Fehlerseite.

Was soll ich werden, um die Überprüfung der HTTP-Header zu überprüfen.

unten ist mein aktueller Code:

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

Dies wird eine Acunetix Scan fehlschlagen, das% 3C und% verwendet 3E anstelle von zum Beispiel so ich natürlich HTML-Codierung muß zur Deckung - gibt es etwas, was ich bin fehle

Aktualisieren Ich kann unter all Acunetix Scans mit dem Code fangen:

if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
    this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host) &&
    !Regex.IsMatch(this.Request.UrlReferrer.ToString(),
                   "%3C",
                   RegexOptions.IgnoreCase))
{
War es hilfreich?

Lösung

  

Ich will nichts, um sicherzustellen, gewährleisten untoward wird in den Referrer auf eine Fehlerseite.

Dann immer HTML-entkommen beliebige Zeichenfolge - einschließlich Referrer-URLs -. Dass Sie die Ausgabe auf die Fehlerseite

Der Versuch, herauszupicken und schwarze Liste Eingang enthält potenziell gefährliche Zeichen auf einer Fall-zu-Fall-Basis wird es nach hinten zu tun. Sie werden wahrscheinlich alle möglichen Angriffe nicht fangen, und Sie werden unnötig gültige URLs nicht zulassen. (Es ist durchaus sinnvoll, eine URL mit ‚% 3C‘ hat in.)

Andere Tipps

this.Request.UrlReferrer kann null sein, wenn keine Referrer zur Verfügung gestellt wurde oder teilgenommen hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top