Как предотвратить наш сайт путем Clickjacking в ASP.NET С#?

У меня есть динамический веб-сайт, в котором я должен сделать защиту от атаки с помощью clickjacking. В базе данных, получающей эти типы значений во время поиска, я знал немного больше о clickjacking, но именно это не так. Пожалуйста, любой, кто знает, поможет мне.

Ответы

Ответ 1

X-FRAME-Options

Добавьте этот код в файл global.asax.

protected void Application_BeginRequest(object sender, EventArgs e)
{
  HttpContext.Current.Response.AddHeader("x-frame-options", "DENY");
}

ИЛИ

просто добавьте это в <system.webServer> в файл Web.Config

<httpProtocol>
  <customHeaders>
    <add name="X-Frame-Options" value="DENY" />
  </customHeaders>
</httpProtocol>

Этот небольшой фрагмент добавляет HTTP-заголовок с параметрами x-frame к вашим ответам HTTP и предотвращает загрузку вашего сайта в iframe в "современных" браузерах.
Для X-Frame-Options доступны 3 значения:

  • DENY: не разрешайте какому-либо сайту создавать ваше приложение
  • SAMEORIGIN: разрешить только тот же сайт приложения для фрейма
  • ALLOW-FROM: разрешить только конкретный домен для вашего приложения

Ответ 2

Попробуйте Лучшее для теперь устаревших рамок браузера Breaking Script

Один из способов защиты от clickjacking состоит в том, чтобы включить на каждой странице "фрейм-брейкер" script, который не должен быть обрамлен. Следующая методология предотвратит создание веб-страницы даже в старых браузерах, которые не поддерживают X-Frame-Options-Header.

В элементе HEAD документа добавьте следующее:

Сначала примените идентификатор к самому стилю:

<style id="antiClickjack">body{display:none !important;}</style>

И затем удалите этот стиль по его идентификатору сразу же после script:

<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>