Как вариант можно просто отдавать какой-либо элемент на страницу скриптом, картинку к примеру, и создавать им куку, наличие которой будет проверять тот скрипт, который требуется защитить. В браузере кука будет почти всегда(мало кто загрузку картинок отключает), но мало кто догадается что получать куку можно только с картинки. Можно пойти более сложным путем, js писать что-либо в localstorage, а потом проверять им же наличие записи - нет записи, картинка/css/js с кукой не грузится, есть - скрипт запрашивает элемент и подгружает его на страницу, устанавливая тем самым куку, но это более легче найти, проще замаскировать картинку - к примеру под какой-либо счетчик или логотип, можно вообще ее через css подгружать в виде фона для кнопки.