Это зависит от того, сколько пользовательских элементов управления вы хотите добавить ...
1) Вы можете добавить контрольный код для каждой попытки загрузки
2) Вы можете «показать» еготолько когда какой-либо пользователь (идентифицированный по IP) загрузит N файлов, просто получите IP и добавьте в базу данных (для истории заливки) с датой и временем, если пользователь попытается загрузить другой (или тот же) файл менее чем за X раз, когда выможет показать капчу или заблокировать загрузку.
3) учитывая то, что вы написали в ответе, я полагаю, что вы знаете, как создать downloader.php, который отправляет сам файл, а не прямую ссылку на файл.
Лучший способ защитить файл от несанкционированного доступа / скачивания - это поместить его в папку, недоступную из Интернета, с помощью php, чтобы загрузить его, и разрешить пользователю загружать его или скопировать во временный доступный каталог.из Интернета и дайте пользователю ссылку на tmp (создана динамически).
Во втором случае вам необходимо время от времени очищать каталог tmp