# ─────────────────────────────────────────────────────────────────────────────
# Yedekalma modülü — KÖK DİZİN KORUMASI
#
# NEDEN VAR (2026-07-22 güvenlik denetimi — KRİTİK bulgu):
# backups/, temp/ ve import/ alt klasörlerinin her birinde koruyucu bir .htaccess
# paketle birlikte geliyordu, ancak MODÜL KÖKÜNDE hiçbir koruma yoktu. Kökte tutulan
# şu dosyalar DÜZ METİN sır içeriyor ve web sunucusu tarafından statik olarak
# servis ediliyordu:
#
#   databases.json      → MySQL host/kullanıcı/PAROLA listesi
#   imap_accounts.json  → IMAP kullanıcı/PAROLA listesi
#   .ya_setup.json      → geçerli ayar oturumu nonce'u (15 dk)
#   .known_hosts.json / .used_nonces.json / .rate_limit_state*.json
#
# `chmod 0600` bunları KORUMAZ: dosyanın sahibi zaten web sunucusu kullanıcısıdır;
# 0600 yalnızca AYNI SUNUCUDAKİ DİĞER OS kullanıcılarını engeller, HTTP isteğini değil.
# Klasör adının rastgele olması da sır değildir (status.php herkese açık, indirme
# linkleri e-postaya gider, Referer başlığında sızar).
#
# ⚠ BU DOSYA TEK BAŞINA YETMEZ: nginx `.htaccess`i TAMAMEN YOK SAYAR. Asıl koruma,
# sırların .json yerine `defined('SECURE_ACCESS') or die` korumalı .php dosyalarında
# tutulmasıdır (bkz. run.php / settings.php içindeki ya_secret_store_* fonksiyonları).
# Bu dosya Apache/LiteSpeed kurulumları için EK bir katmandır.
# ─────────────────────────────────────────────────────────────────────────────

# 1) Sır/durum dosyaları — hiçbir koşulda servis edilmez.
<FilesMatch "\.(json|log|lock|bak|old|sql|zip|gz|tar|eml)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

# 2) Nokta ile başlayan gizli dosyalar (.ya_setup.json, .known_hosts.json, .env …).
<FilesMatch "^\.">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

# 3) Yapılandırma dosyaları — PHP olarak çalıştırılsalar bile doğrudan çağrılmamalı.
<FilesMatch "^(config|config\.local|databases|imap_accounts)\.php$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

# 4) Dizin listeleme kapalı (klasör adı sızmışsa içeriği sayılmasın).
Options -Indexes
