PHP-CSRF sizə veb-saytınızı CSRF hücumlarından qorumaq üçün bir sıra funksiyalar təklif edir. Bu funksiyalardan istifadə edərək yazdığınız vebsaytı həm daha təhlükəsiz etmiş olacaqsınız həm də botlardan və arzuolunmaz insanlardan uzaq tutacaqsınız
- PHP 7.3+
composer require orkhanshukurlu/php-csrf
Funksiyaları istifadə edəcəyiniz fayllarda vendor/autoload.php faylını daxil etmək lazımdır
require __DIR__ . '/vendor/autoload.php';csrf_field(string $name = '_token', int $length = 40) - CSRF token inputu generasiya edir
$name- Generasiya olunacaqinput-un adıdır (name-i). İlkin olaraq dəyəri_tokentəyin edilmişdir$length- Generasiya olunacaq tokenin simvol sayıdır. İlkin olaraq dəyəri40simvol təyin edilmişdir
Funksiya html-də form elementinin daxilində istifadə edilməlidir. Beləliklə type-ı hidden, name-i _token, value-si 40 simvoldan ibarət olan input generasiya olunacaq. İstifadəsi aşağıdakı kimidir:
<?php require __DIR__ . '/vendor/autoload.php'; ?>
<form action="#" method="POST">
<?= csrf_field(); ?>
</form>Generasiya olunan input html-də aşağıdakı kimi görünəcək:
<input type="hidden" name="_token" value="a60e5c1048225b366c4d48c0f87e07ad2cad3583">csrf_token(int $length = 40) - CSRF token dəyəri generasiya edir
$length- Generasiya olunacaq tokenin simvol sayıdır. İlkin olaraq dəyəri40simvol təyin edilmişdir
Funksiya 40 simvoldan ibarət token generasiya edir. Əgər yalnız token dəyəri lazımdırsa bu funksiyanı istifadə edə bilərsiniz. İstifadəsi aşağıdakı kimidir:
<?php
require __DIR__ . '/vendor/autoload.php';
echo csrf_token();Generasiya olunan token aşağıdakı kimi görünəcək:
a60e5c1048225b366c4d48c0f87e07ad2cad3583csrf_validate(array $request, string $name = '_token') - CSRF tokenin doğruluğunu yoxlayır
$request- Tokenin doğru olub olmadığını yoxlamaq üçün göndəriləcək dəyişəndir$name- Generasiya olunacaqinput-un adıdır (name-i). İlkin olaraq dəyəri_tokentəyin edilmişdir
Funksiya form-da göndəriləcək tokenin doğru olub olmadığını yoxlayır. Beləliklə form göndəriləndə token dəyəri düzgündürsə true, düzgün deyilsə false dəyəri geri döndürür. Funksiyaya parametr kimi $_GET, $_POST və ya $_REQUEST dəyişənlərindən biri ötürülməlidir. İstifadəsi aşağıdakı kimidir:
<?php
require __DIR__ . '/vendor/autoload.php';
if (csrf_validate($_POST)) {
// Token dəyəri düzgündür, heç bir xəta yoxdur
} else {
// Token dəyəri düzgün deyil, xəta baş verdi
}Laravel MSM MIT lisenziyası altında buraxılıb
Telegram: Orxan Şükürlü