2016-07-20 3 views
0

В настоящее время я занимаюсь защитой веб-сайта от перетаскивания мышью. German Wikipedia дает следующую лучшую практику пример, чтобы сделать это:Лучшая защита от щелчка мышью: что делать, если javascript отключен?

<style> html{display : none ; } </style> 
<script> 
    if(self == top) { 
     document.documentElement.style.display = 'block' ; 
    } else { 
     top.location = self.location ; 
    } 
</script> 

Я, однако, было интересно, что если клиент Javascript отключен? Тогда у него НЕ будет отображаться страница. У нас есть требование отправить полностью функциональную не-javascript версию приложения.

Любые рекомендации по достижению этого?

+0

В настоящее время вы, вероятно, можете полагаться только на X-Frame-Options. – Bergi

+0

К сожалению, у нас есть рекомендации по устранению этого требования, включая механизмы javascript для предотвращения щелчка мышью:/ – smoes

+0

Вы можете использовать ' ', но это победит всю цель этого подхода к кадрированию. Вы не можете использовать сценарии framebusting без JS. – Bergi

ответ

2

Вы можете использовать

<script> 
    if (self !== top) { 
     document.documentElement.style.display = 'none'; 
     top.location = self.location; 
    } 
</script> 

до сих пор скрыть страницу в случае попытки навигации успешно атакован. Вы также можете показать сообщение по строкам self.location.href + " cannot be displayed in a frame.".

Конечно, это не помешает вашей странице отображаться в кадре, когда JavaScript отключен (возможно, даже не глобально, а только в вашем фрейме), поэтому вы всегда должны отправлять соответствующий заголовок X-Frame-Options.

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