wie sollten wir HTTP-Header Referrer in aspx .net validieren
-
21-08-2019 - |
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
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))
{
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.