Как запретить кадрирование - PullRequest
9 голосов
/ 12 декабря 2010

Я недавно заметил, что переполнение стека "по соображениям безопасности" не позволяет создавать кадры.

1) Как это было сделано?(Это не так особенный случай! Я имею в виду технику / язык и т. Д., По некоторым причинам, я думаю, это js)

2) Это на самом деле избегает этого или просто предупреждение (вроде проверки на стороне клиента)

3) Должно ли это всегда быть сделано или есть конкретные причины для этого, и в большинстве случаев это не нужно (это первый раз, когда я это видел)

Заранее спасибо!!!

Ответы [ 3 ]

9 голосов
/ 12 декабря 2010

1) Удаление кадра всегда выполняется на клиенте: поскольку серверу никогда не сообщается, что страница запрашивается для использования в кадре, это должно выполняться на стороне клиента. Последние браузеры поддерживают специальный HTTP-заголовок с именем X-Frame-Options , чтобы предотвратить отображение страницы во фрейме, но для удаления фреймов или для более старых версий браузера вам необходим Javascript. (Спасибо ide за указание на это!)

2) Если вы не используете заголовок HTTP, то, если Javascript выключен, то кадр останется. Обойти это невозможно, так как это должно происходить на стороне клиента.

3) Это было довольно распространенным явлением несколько лет назад, хотя кажется, что большинство сайтов уже перестали его использовать. Одна из причин, по которой вы все еще можете его использовать, заключается в том, чтобы предотвратить clickjacking .

Так вот, так уж вышло, что уничтожение фреймов может быть отключено , и на самом деле есть SO вопрос о том, как можно отключить фреймы уничтожения фреймов - SO сейчас использует этот тип антикоррозионной очистки.

(Конечно, может случиться так, что этот анти-антикадровый перебор сам может быть уничтожен, и в этом случае может быть способ уничтожить анти-анти-фреймовое уничтожение, и я уверен, Вы видите, куда это идет.)

1 голос
/ 12 декабря 2010

Смотрите этот пост на выключатели: http://www.codinghorror.com/blog/2009/06/we-done-been-framed.html

0 голосов
/ 12 декабря 2010

Вы пробовали: http://www.cryer.co.uk/resources/javascript/script1.htm Я бы предположил, что SO использует javascript для достижения этой цели, что означает, что он может быть обойден пользователем, у которого не включен javascript, или, возможно, когда-то продвинутым на летумодификация javascript.Я считаю, что это полностью клиентская сторона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...