Как предотвратить наш сайт путем 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>