エラーページのリファラーに不都合なものが入らないようにしたい.
http ヘッダーを検証するために何を確認する必要がありますか。
以下は私の現在のコードです:
// Ensure the referrer header is good
if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host))
{
これは、たとえば < と > の代わりに %3C と %3E を使用する acunetix スキャンに失敗するため、明らかに html エンコーディングをカバーする必要があります - 他に不足しているものはありますか?
更新 以下のコードを使用して、すべての acunetix スキャンをキャッチできます。
if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host) &&
!Regex.IsMatch(this.Request.UrlReferrer.ToString(),
"%3C",
RegexOptions.IgnoreCase))
{