Skip to main content Skills Marktplatz Entdecken und erkunden Sie KI-Skills, die von der Community erstellt wurden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Prompt kopierenPrompt-Details anzeigen Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
npx skills add https://github.com/mturac/everything-openai-codex --skill laravel-securityDer Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
ZIP herunterladen Herunterladen... Mehr aus diesem Repository
Use this skill to monitor and verify a deployed URL or public OSS launch surface after releases — checks HTTP endpoints, SSE streams, static assets, console errors, performance regressions, PR queue health, maintainer feedback, and listing-review blockers after deploys, merges, submissions, or dependency upgrades. Smoke / canary / post-deploy / PR-watch verification.
Verwandte Berufe SOC
Basierend auf der SOC-Berufsklassifikation
name laravel-security description Laravel security best practices for authn/authz, validation, CSRF, mass assignment, file uploads, secrets, rate limiting, and secure deployment. origin ecc
Laravel Güvenlik En İyi Uygulamaları
Laravel uygulamalarını yaygın güvenlik açıklarına karşı korumak için kapsamlı güvenlik rehberi.
Ne Zaman Aktif Edilir
Kimlik doğrulama veya yetkilendirme ekleme
Kullanıcı girişi ve dosya yüklemelerini işleme
Yeni API endpoint'leri oluşturma
Gizli bilgileri ve ortam ayarlarını yönetme
Production deployment'ları sertleştirme
Nasıl Çalışır
Middleware temel korumalar sağlar (CSRF için VerifyCsrfToken, güvenlik başlıkları için SecurityHeaders).
Guard'lar ve policy'ler erişim kontrolünü zorlar (auth:sanctum, $this->authorize, policy middleware).
Form Request'ler servislere ulaşmadan önce girişi doğrular ve şekillendirir (UploadInvoiceRequest).
Rate limiting, auth kontrolleri ile birlikte kötüye kullanım koruması ekler (RateLimiter::for('login')).
Veri güvenliği encrypted cast'lerden, mass-assignment korumalarından ve signed route'lardan gelir (URL::temporarySignedRoute + signed middleware).
Temel Güvenlik Ayarları
Production'da APP_DEBUG=false
APP_KEY ayarlanmalı ve tehlikeye girdiğinde döndürülmelidir
SESSION_SECURE_COOKIE=true ve ayarlayın (veya hassas uygulamalar için )
SESSION_SAME_SITE=lax
strict
Doğru HTTPS algılama için güvenilir proxy'leri yapılandırın
Session ve Cookie Sertleştirme
JavaScript erişimini önlemek için SESSION_HTTP_ONLY=true ayarlayın
Yüksek riskli akışlar için SESSION_SAME_SITE=strict kullanın
Login ve ayrıcalık değişikliklerinde session'ları yeniden oluşturun
Kimlik Doğrulama ve Token'lar
API kimlik doğrulama için Laravel Sanctum veya Passport kullanın
Hassas veriler için yenileme akışları ile kısa ömürlü token'ları tercih edin
Logout ve tehlikeye girmiş hesaplarda token'ları iptal edin
use Illuminate \Http \Request ;
use Illuminate \Support \Facades \Route ;
Route ::middleware ('auth:sanctum' )->get ('/me' , function (Request $request ) {
return $request ->user ();
});
Parola Güvenliği
Hash::make() ile parolaları hash'leyin ve asla düz metin saklamayın
Sıfırlama akışları için Laravel'in password broker'ını kullanın
use Illuminate \Support \Facades \Hash ;
use Illuminate \Validation \Rules \Password ;
$validated = $request ->validate ([
'password' => ['required' , 'string' , Password ::min (12 )->letters ()->mixedCase ()->numbers ()->symbols ()],
]);
$user ->update (['password' => Hash ::make ($validated ['password' ])]);
Yetkilendirme: Policy'ler ve Gate'ler
Model seviyesi yetkilendirme için policy'leri kullanın
Controller'larda ve servislerde yetkilendirmeyi zorlayın
$this ->authorize ('update' , $project );
Route seviyesi zorlama için policy middleware kullanın:
use Illuminate \Support \Facades \Route ;
Route ::put ('/projects/{project}' , [ProjectController ::class , 'update' ])
->middleware (['auth:sanctum' , 'can:update,project' ]);
Validation ve Veri Temizleme
Her zaman Form Request'ler ile girişleri doğrulayın
Sıkı validation kuralları ve tip kontrolleri kullanın
Türetilmiş alanlar için request payload'larına asla güvenmeyin
Mass Assignment Koruması
$fillable veya $guarded kullanın ve Model::unguard() kullanmaktan kaçının
DTO'ları veya açık attribute mapping'i tercih edin
SQL Injection Önleme
Eloquent veya query builder parametre binding kullanın
Kesinlikle gerekli olmadıkça raw SQL kullanmaktan kaçının
DB::select ('select * from users where email = ?' , [$email ]);
XSS Önleme
Blade varsayılan olarak çıktıyı escape eder ({{ }})
{!! !!} sadece güvenilir, temizlenmiş HTML için kullanın
Zengin metni özel bir kütüphane ile temizleyin
CSRF Koruması
VerifyCsrfToken middleware'ini etkin tutun
Formlara @csrf ekleyin ve SPA istekleri için XSRF token'ları gönderin
Sanctum ile SPA kimlik doğrulaması için, stateful isteklerin yapılandırıldığından emin olun:
'stateful' => explode (',' , env ('SANCTUM_STATEFUL_DOMAINS' , 'localhost' )),
Dosya Yükleme Güvenliği
Dosya boyutunu, MIME tipini ve uzantısını doğrulayın
Mümkün olduğunda yüklemeleri public path dışında saklayın
Gerekirse dosyaları malware için tarayın
final class UploadInvoiceRequest extends FormRequest
{
public function authorize ( ): bool
{
return (bool ) $this ->user ()?->can ('upload-invoice' );
}
public function rules ( ): array
{
return [
'invoice' => ['required' , 'file' , 'mimes:pdf' , 'max:5120' ],
];
}
}
$path = $request ->file ('invoice' )->store (
'invoices' ,
config ('filesystems.private_disk' , 'local' ) // bunu public olmayan bir disk'e ayarlayın
);
Rate Limiting
Auth ve yazma endpoint'lerinde throttle middleware'i uygulayın
Login, password reset ve OTP için daha sıkı limitler kullanın
use Illuminate \Cache \RateLimiting \Limit ;
use Illuminate \Http \Request ;
use Illuminate \Support \Facades \RateLimiter ;
RateLimiter ::for ('login' , function (Request $request ) {
return [
Limit ::perMinute (5 )->by ($request ->ip ()),
Limit ::perMinute (5 )->by (strtolower ((string ) $request ->input ('email' ))),
];
});
Gizli Bilgiler ve Kimlik Bilgileri
Gizli bilgileri asla kaynak kontrolüne commit etmeyin
Ortam değişkenlerini ve gizli yöneticileri kullanın
Maruz kalma sonrası anahtarları döndürün ve session'ları geçersiz kılın
Şifreli Attribute'lar Bekleyen hassas sütunlar için encrypted cast'leri kullanın.
protected $casts = [
'api_token' => 'encrypted' ,
];
Güvenlik Başlıkları
Uygun yerlerde CSP, HSTS ve frame koruması ekleyin
HTTPS yönlendirmelerini zorlamak için güvenilir proxy yapılandırması kullanın
Başlıkları ayarlamak için örnek middleware:
use Illuminate \Http \Request ;
use Symfony \Component \HttpFoundation \Response ;
final class SecurityHeaders
{
public function handle (Request $request , \Closure $next ): Response
{
$response = $next ($request );
$response ->headers->add ([
'Content-Security-Policy' => "default-src 'self'" ,
'Strict-Transport-Security' => 'max-age=31536000' , // tüm subdomain'ler HTTPS olduğunda includeSubDomains/preload ekleyin
' X-Frame-Options' => ' DENY',
' X-Content-Type-Options' => ' nosniff',
' Referrer-Policy' => ' no-referrer',
]);
return $response;
}
}
CORS ve API Erişimi
config/cors.php'de origin'leri kısıtlayın
Kimlik doğrulamalı route'lar için wildcard origin'lerden kaçının
return [
'paths' => ['api/*' , 'sanctum/csrf-cookie' ],
'allowed_methods' => ['GET' , 'POST' , 'PUT' , 'PATCH' , 'DELETE' ],
'allowed_origins' => ['https://app.example.com' ],
'allowed_headers' => [
'Content-Type' ,
'Authorization' ,
'X-Requested-With' ,
'X-XSRF-TOKEN' ,
'X-CSRF-TOKEN' ,
],
'supports_credentials' => true ,
];
Loglama ve PII
Parolaları, token'ları veya tam kart verilerini asla loglamayın
Yapılandırılmış loglarda hassas alanları redakte edin
use Illuminate \Support \Facades \Log ;
Log ::info ('User updated profile' , [
'user_id' => $user ->id,
'email' => '[REDACTED]' ,
'token' => '[REDACTED]' ,
]);
Bağımlılık Güvenliği
Düzenli olarak composer audit çalıştırın
Bağımlılıkları dikkatle sabitleyin ve CVE'lerde hızlıca güncelleyin
Signed URL'ler Geçici, kurcalamaya dayanıklı bağlantılar için signed route'ları kullanın.
use Illuminate \Support \Facades \URL ;
$url = URL::temporarySignedRoute (
'downloads.invoice' ,
now ()->addMinutes (15 ),
['invoice' => $invoice ->id]
);
use Illuminate \Support \Facades \Route ;
Route ::get ('/invoices/{invoice}/download' , [InvoiceController ::class , 'download' ])
->name ('downloads.invoice' )
->middleware ('signed' );