Eğerki kullanıcı paneliniz varsa ve dosya yol/isimlerini SQL'de tutuyorsanız;
/Dosya.rar bölümüne GET isteğini engeller sadece POST isteği ile açtırırsınız. Her dosya için özel bir key'i SQL'de tutar bu KEY'i kullanıcıya ait bir bilgi ile (örn kullanıcı adı) şifreleyip indir butonuna basıldığında post ile dosyanın indirileceği sayfaya gönderebilirsiniz.
İndirme yapılacak sayfada gelen şifre decode edilip eşleşiyorsa PHP tarafından indirme işlemi başlatılır.

Örneğin;
Kullanıcılar
Dosyalar
İzinler

Gibi üç tane tablomuz var.

Kullanıcılar tablosu;
id, kullanici_adi, sifresi, key

Dosyalar tablosu;
id, dosya_adi, dosya_yolu, dosya_sifresi

İzinler tablosu;
id, dosya_id, kullanici_id

Her dosyanın şifresi uniq olur, indirme sayfasına daha güvenli olması için kişiye ait key gönderilir. Güvenli olması açısından (dışarıdan müdahaleyi düşürmek amaçlı) dosya key ile kullanıcı key şifrelenip gönderilebilir.

Dosya yoluna gönderilen isteklerde gelen bilgiler (izin ve dosya key) gibi bilgiler kontrol edilir ve doğrulama yapılırsa indirme işlemi başlatılır.

Bu şekilde yüzlerce senaryo vardır, bu onlardan birisi.