AlvandCMS از لایههای امنیتی متعدد برای حفاظت از برنامه استفاده میکند.
لایههای امنیتی
1. احراز هویت
- JWT Token: توکنهای امن با انقضای 30 روزه
- BCrypt Hashing: هش کردن رمز عبور با PASSWORD_BCRYPT
- SHA1 Migration: مهاجرت خودکار رمزهای عبور قدیمی به BCrypt
- OTP: کد یکبار مصرف با طول و TTL قابل تنظیم
2. محافظت CSRF
تمام فرمهای مدیریتی و APIها نیاز به توکن CSRF دارند.
3. محدودیت نرخ (Rate Limiting)
سیستم محدودیت نرخ Session-based با:
- تنظیم حداکثر تلاش در یک بازه زمانی
- قفل شدن خودکار کاربر
- پاکسازی خودکار لاگهای قدیمی
4. کپچا
کپچای SVG با پشتیبانی از اعداد، حروف لاتین، ترکیبی، حروف فارسی، نویز خطوط و چرخش تصادفی.
5. امنیت Session
php
ini_set('session.cookie_httponly', '1');
session_set_cookie_params([
'lifetime' => 2592000,
'path' => '/',
'httponly' => true,
'samesite' => 'Lax',
]);
6. دانلود امن
سیستم دانلود امن با قابلیت:
json
{
"ttl_seconds": 1800,
"bind_ip": true,
"bind_user": false,
"single_use": true,
"max_downloads": 2
}
7. راستیآزمایی ورودی
تماس URLها و پارامترها پالایش میشوند با filter_var و FILTER_SANITIZE_URL.
8. سطوح دسترسی
سیستم دسترسی نقشمحور (RBAC) با:
- تعریف نقشهای کاربری
- درخت دسترسی (Access Tree)
- API اختصاصی:
/api/access/tree-builder - محدودیت دسترسی به صفحات و عملیات