2009-05-04 2 views
4

Я использую пользовательскую функцию в течение некоторого времени, чтобы предотвратить щелчок на некоторых сайтах. Тем не менее, я был удивлен, обнаружив, что там не так много о том, как это сделать «идиоматически» с использованием различных популярных JavaScript-фреймворков.Как вы используете фреймворк JavaScript для предотвращения Clickjacking?

Есть ли пользователи jQuery, Dojo, YUI и/или ExtJS, которые использовали свою инфраструктуру для реализации защиты от щелчка? Я бы хотел увидеть примеры!

ответ

1

Зачем стоит использовать библиотеку? Вы могли бы просто сделать:

var all = document.getElementsByTagName('iframe'), l = all.length; 
while (l--) all[l].parentNode.removeChild(all[l]); 

Но если вы действительно чувствуете, что вам нужна библиотека. В jquery это довольно просто, просто найдите все iframe и удалите их.

$(document).ready(function() { $('iframe').remove(); }); 
+0

Я понимаю, что вам не нужна библиотека - но в тех случаях, когда библиотеки могут уже быть в использовании, я хотел бы знать, что общие «идиоматические выражения» будет. Спасибо, пример jquery. – TML

2

Не все так просто. Верхняя рамка может помешать выгрузке страницы. Я хотел бы использовать следующий код, чтобы работать вокруг него:

if (window.top !== window.self) { 
    window.top.location.replace(window.self.location.href); 
    alert('For security reasons, frames are not allowed.'); 
    setInterval(function(){document.body.innerHTML='';},1); 
} 

Он использует предупреждение(), чтобы дать время браузера для загрузки новой страницы. И не оставляет элементов, которые можно щелкнуть, если все не удастся.

Смотрите полное описание проблемы: frame-buster-buster-buster-code-needed

+1

см. Http://stackoverflow.com/questions/958997 – Chris

Смежные вопросы