Я хочу убедиться, что на страницу ошибки не попадает ничего плохого в реферер.
Что я должен проверять для проверки заголовка http.
ниже мой текущий код:
// Ensure the referrer header is good
if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host))
{
это не удастся, например, при сканировании acunetix, использующем% 3C и% 3E вместо <и>, поэтому мне, очевидно, нужно рассмотреть 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))
{