У меня есть веб-страница с таким javascript:
<script>
window.onblur = function(){
alert("Don't leave this page");
document.location.href = "show_results.php";
}
var sec = 15;
tim = function(){
sec--;
document.getElementById("mytimer").innerHTML=sec;
if(!sec) document.location.href = "show_results.php";
}
stop_timer=function(){
clearInterval(timer);
}
start_timer=function(){
timer = window.setInterval(tim,1000);
}
</script>
Итак, я разрешаю смотреть свою страницу в течение 15 секунд и запрещаю покидать ее, но, например, с помощью Tampermonkey пользователи могут переопределить мои функции. Они могут написать что-то вроде:
window.onblur = function(){}
function f(){
sec=16;
setTimeout(f,1000);
}
f();
После этого таймер прерывается и пользователи могут покинуть страницу. Как защитить свою страницу от таких действий?
P.S.: Эта страница является викториной, и я не хочу, чтобы пользователи могли искать правильный ответ через Интернет.
addEventListener
существует, чтобы прослушиватели событий не были перезаписаны и могли быть удалены только с помощьюremoveEventListener
с функцией, используемой в качестве прослушивателя. Но это только защитит ваш код от конфликтов с другими скриптами.[...] This page is a quiz and I don't want to allow users to search a correct answer via Internet.[...]
предотвратить это невозможно. - person t.niese   schedule 13.03.2016