Разрешение клиентской кросс-фреймовой атаки
Мы разработали новое приложение, и перед перемещением изменений мы сделали статическое сканирование кода с использованием checkmarx. Существует уязвимость среднего уровня, которая обнаружена в коде, называемом Client Cross Frame Scripting Attack.
Это отключено в первой строке страницы JSP:
<!DOCTYPE html>
Можете ли вы помочь мне понять эту атаку и что нужно сделать, чтобы устранить это?
3 ответа
Запрос клиентской межсайтовой скриптовой атаки определяет, защищена ли страница от встраивания в IFrame. Он ищет такие условия, как:
if (top != self)
if (top.location != location)
if (top.frames.length != 0)
и так далее.
Этот конкретный файл, я полагаю, не имеет таких условий, поэтому он, скорее всего, не защищает себя, и именно поэтому запрос нашел и пометил его. Так как мы ищем пропущенную строку здесь, результат просто показывает вам файл, и не может показать вам, где проблема.
Надеюсь, поможет,
Адар из Checkmarx.
Просто добавьте следующий фрагмент кода в ваш HTML-файл.
<style id='antiClickjack'>
body{display:none !important;}
</style>
<script type='text/javascript'>
if (self === top) {
var antiClickjack = document.getElementById('antiClickjack');
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>
Для получения более подробной информации об этой проблеме и для решения проблемы кросс-фрейм-скриптинга обратитесь к https://css-tricks.com/snippets/javascript/break-out-of-iframe/
По сути, добавьте это в файл макета самого родителя (_Layout.cshtml в C# MVC).
(function (window) { // Prevent Cross-Frame Scripting attacks
if (window.location !== window.top.location)
window.top.location = window.location;
})(this);