# جلوگیری از لیست شدن فایل‌ها
Options -Indexes

# جلوگیری از دسترسی مستقیم به فایل‌های حساس
<FilesMatch "\.(php|log|txt|json|tmp)$">
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# اجازه دسترسی فقط به فایل‌های اصلی PHP که باید اجرا بشن
<FilesMatch "^(main|new_order|webhook_order_status|update_cache|remind_mobile|normalize_users)\.php$">
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Allow from all
    </IfModule>
</FilesMatch>

# فایل config.php به public_html/conf/ منتقل شده است

# محافظت از فایل db.php
<Files "db.php">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</Files>

# محافظت از فایل‌های log
<FilesMatch "\.(log|txt)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# محافظت از فایل‌های tmp
<FilesMatch "\.tmp$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# محافظت از فایل‌های JSON (cache)
<FilesMatch "\.json$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# محافظت از فایل‌های راهنما و مستندات
<FilesMatch "\.(md|txt|doc|docx)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# جلوگیری از دسترسی به دایرکتوری‌ها
<IfModule mod_rewrite.c>
    RewriteEngine On
    # جلوگیری از دسترسی به فایل‌های پشتیبان
    RewriteRule \.(bak|backup|old|orig|save|swp|tmp)$ - [F,L]
    # جلوگیری از دسترسی به فایل‌های git
    RewriteRule ^\.git - [F,L]
    RewriteRule ^\.gitignore - [F,L]
    RewriteRule ^\.gitattributes - [F,L]
</IfModule>

# تنظیمات امنیتی اضافی
<IfModule mod_headers.c>
    # جلوگیری از نمایش اطلاعات سرور
    Header unset Server
    Header unset X-Powered-By
    # اضافه کردن هدرهای امنیتی
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "DENY"
    Header set X-XSS-Protection "1; mode=block"
    Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# غیرفعال کردن اجرای PHP در پوشه‌های خاص (اگر وجود داشته باشه)
<IfModule mod_php7.c>
    php_flag engine off
</IfModule>

# محدود کردن اندازه آپلود (برای جلوگیری از حملات DoS)
php_value upload_max_filesize 10M
php_value post_max_size 10M

# محدود کردن زمان اجرای اسکریپت
php_value max_execution_time 30
php_value max_input_time 30
