דעם מיטל אַז ווען דער באַניצער (Laravel View) מאכט אַ בקשה צו די סערווער (Laravel קאָנטראָללער), די בעטן וועט גיין דורך די מידוואַרע. דעם וועג די מידוואַרע קענען קאָנטראָלירן אויב די בקשה איז אָטענטאַקייטאַד אָדער נישט:
Laravel אַלאַוז איר צו defiענדיקן און נוצן נאָך מיטלוואַרע צו דורכפירן אַ פאַרשיידנקייַט פון טאַסקס אַחוץ אָטענטאַקיישאַן.
לאַראַוועל מידאַלוואַרעס, אַזאַ ווי אָטענטאַקיישאַן און CSRF שוץ, זענען ליגן אין די וועגווייַזער אַפּ / הטטפּ / מיטלוואַרע .
מיר קענען דעריבער זאָגן אַז די מידוואַרע איז אַ הטטפּ בעטן פילטער, דורך וואָס עס איז מעגלעך צו באַשטעטיקן טנאָים און דורכפירן אַקשאַנז.
צו שאַפֿן אַ נייַע מיטל, מיר לויפן די פאלגענדע באַפֿעל:
php artisan make:middleware <name-of-middleware>
מיר מאַכן די middleware
און מיר רופן עס CheckAge
, artisan
וועט אונדז ענטפֿערן ווי גייט:
די פֿענצטער אויבן ווייזט אַז די מידוואַרע איז הצלחה באשאפן מיט דעם נאָמען " טשעק אַגע ".
צו זען אויב די CheckAge מידאַלוואַרע איז באשאפן אָדער נישט, גיין צו די פּרויעקט אין די אַפּ / הטטפּ / מידדלעוואַרע טעקע, און איר וועט זען די ניי באשאפן טעקע.
די ניי באשאפן טעקע האט די פאלגענדע קאָד
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}
צו נוצן מיטלוואַרע, מיר דאַרפֿן צו פאַרשרייַבן עס.
עס זענען צוויי טייפּס פון מידאַלוואַרע אין לאַראַוועל:
Middleware globale
Route Middleware
Il גלאבאלע מידוואַרע וועט זיין עקסאַקיוטאַד אויף יעדער הטטפּ בעטן פון די אַפּלאַקיישאַן, בשעת די רוט מיטלוואַרע וועט זיין אַסיינד צו אַ ספּעציפיש וועג. מיטלוואַרע קענען זיין רעגיסטרירט אין אַפּ/הטטפּ/קערנעל.פפּ. דער טעקע כּולל צוויי פּראָפּערטיעס $מיטלוואַרע e $ראָוטע מיטלוואַרע . די $מיטלוואַרע פאַרמאָג איז געניצט צו רעגיסטרירן גלאבאלע מידאַלוואַרע און אָונערשיפּ $ראָוטע מיטלוואַרע איז געניצט צו רעגיסטרירן מאַרשרוט-ספּעציפיש מידוואַרע.
צו פאַרשרייַבן גלאבאלע מידוואַרע, רשימה די קלאַס אין די סוף פון די $ מידדלעוואַרע פאַרמאָג.
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
צו פאַרשרייַבן מאַרשרוט-ספּעציפיש מידאַלוואַרע, לייגן דעם שליסל און ווערט צו די $routeMiddleware פאַרמאָג.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
מיר באשאפן טשעק אַגע אין די פריערדיקע בייַשפּיל. מיר קענען איצט פאַרשרייַבן דעם אין די מיטלוואַרע מאַרשרוט פאַרמאָג. דער קאָד פֿאַר אַזאַ אַ רעגיסטראַציע איז געוויזן אונטן.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
];
מיר קענען אויך פאָרן פּאַראַמעטערס מיט מידדלעוואַרע.
פֿאַר בייַשפּיל, אויב דיין אַפּלאַקיישאַן האט פאַרשידענע ראָלעס ווי באַניצער, אַדמין, סופּער אַדמין עטק. און איר ווילן צו אָטענטאַקייט די קאַמף באזירט אויף די ראָלע, איר קענען טאָן דאָס דורך פאָרן די פּאַראַמעטערס מיט די מידוואַרע.
די מידוואַרע וואָס מיר האָבן באשאפן כּולל די פאלגענדע פונקציע, און מיר קענען פאָרן מנהג אַרגומענטן נאָך דעם אַרגומענט $ווייַטער .
public function handle($request, Closure $next)
{
return $next($request);
}
איצט לאָזן אונדז פּרובירן צו שטעלן די ראָלע פּאַראַמעטער צו אַ נייַע מידדוואַרע וואָס מיר וועלן שאַפֿן פֿון קראַצן, און פאָרזעצן צו שאַפֿן ראָלע מידדוואַרע דורך לויפן די פאלגענדע באַפֿעל.
מאָדיפיצירן די שעפּן אופֿן ווי גייט
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
מיר צוגעגעבן דעם פּאַראַמעטער $role
, און ין דער אופֿן די שורה echo
צו שרייַבן די רעזולטאַט די נאָמען פון די ראָלע.
איצט לאָזן אונדז פאַרשרייַבן די RoleMiddleware מידוואַרע פֿאַר אַ ספּעציפיש דרך
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
];
איצט צו פּרובירן די מיטלוואַרע מיט דעם פּאַראַמעטער, מיר דאַרפֿן צו שאַפֿן אַ בקשה און אַ ענטפער. צו סימולירן דעם ענטפער, לאָזן אונדז שאַפֿן די קאָנטראָללער וואָס מיר וועלן רופן TestController
php artisan make:controller TestController --plain
דער באַפֿעל פּונקט עקסאַקיוטאַד וועט שאַפֿן אַ נייַע קאָנטראָללער אין דער טעקע app/Http/TestController.php
, און טוישן דעם אופֿן index
מיט די שורה echo "<br>Test Controller.";
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function index() {
echo "<br>Test Controller.";
}
}
נאָך באַשטעטיקן דעם ענטפער, מיר בויען די בקשה דורך עדיטינג די טעקע routes.php
דורך אַדינג די route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
אין דעם פונט מיר קענען פּרובירן דעם בייַשפּיל דורך באזוכן די URL http://localhost:8000/role
און אין דעם בלעטערער מיר וועלן זען די צוויי echo
Role editor
Test Controller
Il terminable Middleware
פּערפאָרמז עטלעכע טאַסקס נאָך די ענטפער איז געשיקט צו דעם בלעטערער. דעם קענען זיין אַטשיווד דורך שאַפֿן אַ מידוואַרע מיט דעם אופֿן פאַרענדיקן אין די מיטלוואַרע. Il terminable Middleware
מוזן זיין רעגיסטרירט מיט די middleware
גלאבאלע. דער שיטה terminate
וועט באַקומען צוויי טענות $ בעטן e $ ענטפער.
דער אופֿן Terminate
מוזן זיין באשאפן ווי געוויזן אין די פאלגענדע קאָד.
php artisan make:middleware TerminateMiddleware
אַמאָל די מידוואַרע איז באשאפן app/Http/Middleware/TerminateMiddleware.php
לאָמיר מאָדיפיצירן די קאָד ווי גייט
<?php
namespace App\Http\Middleware;
use Closure;
class TerminateMiddleware {
public function handle($request, Closure $next) {
echo "Executing statements of handle method of TerminateMiddleware.";
return $next($request);
}
public function terminate($request, $response) {
echo "<br>Executing statements of terminate method of TerminateMiddleware.";
}
}
אין דעם פאַל מיר האָבן אַ אופֿן handle
און א שיטה terminate
מיט די צוויי פּאַראַמעטערס $request
e $response
.
איצט לאָזן אונדז פאַרשרייַבן די מידדלעוואַרע
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
'terminate' => \App\Http\Middleware\TerminateMiddleware::class,
];
איצט מיר דאַרפֿן צו שאַפֿן די קאָנטראָללער צו סימולירן דעם ענטפער
php artisan make:controller XYZController --plain
מאָדיפיצירן די אינהאַלט פון די קלאַס
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
איצט מיר דאַרפֿן צו רעדאַגירן די טעקע routes/web.php
אַדינג די רוץ דארף צו אַקטאַווייט די בעטן
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
אין דעם פונט מיר קענען פּרובירן דעם בייַשפּיל דורך באזוכן די URL http://localhost:8000/terminate
און אין דעם בלעטערער מיר וועלן זען די פאלגענדע שורות
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
איר קען אויך ווי:
Coveware דורך Veeam וועט פאָרזעצן צו צושטעלן ענטפער באַדינונגס פֿאַר סייבער יקסטאָרשאַן אינצידענט. קאָוועוואַרע וועט פאָרשלאָגן פאָרענסיקס און רימעדייישאַן קייפּאַבילאַטיז ...
פּרידיקטיוו וישאַלט איז רעוואַלושאַנייזינג די ייל & גאַז סעקטאָר, מיט אַן ינאַווייטיוו און פּראָואַקטיוו צוגאַנג צו פאַבריק פאַרוואַלטונג.…
די UK CMA האט ארויס אַ ווארענונג וועגן ביג טעק ס נאַטור אין די קינסטלעך סייכל מאַרק. דאָרט…
די "קאַסע גרין" דעקרעט, פארמולירט דורך די אייראפעישע יוניאַן צו פאַרבעסערן די ענערגיע עפעקטיווקייַט פון בנינים, האט פארענדיקט זיין לעגיסלאַטיווע פּראָצעס מיט ...