Это можно сделать. Для этого нужно генерировать скрипт, а не отдавать статику.
Например, при обращении к урлу site.com/js/script.js на самом деле происходит обращение к серверу, который делает необходимые проверки. Далее в случае успешной валидации в ответ подсовывается тело скрипта, иначе пустой ответ.
Но тело скрипта всё равно возможно получить на клиенте. Достаточно загрузить страницу и через консоль разработчика посмотреть состав загруженного файла