ፅሁፎች

የላራቬል ድር ደህንነት፡- ጣቢያ ተሻጋሪ ጥያቄ ፎርጀሪ (CSRF) ምንድን ነው?

በዚህ የላራቬል ማጠናከሪያ ትምህርት ስለ ድር ደህንነት እና የድር መተግበሪያን ከድረ-ገጽ ተሻጋሪ ጥያቄ ፎርጀሪ ወይም CSRF ጥቃቶች እንዴት መጠበቅ እንደምንችል እንነጋገራለን።

CSRF በአጥቂ የሚሰራ ተንኮል አዘል ተግባር ነው፣ እሱም የተረጋገጠ ተጠቃሚን ወክሎ የድር ደህንነትን የሚጎዳ እርምጃዎችን የሚፈጽም ነው። እንደ እድል ሆኖ, ላራቬል የዚህ አይነት ተጋላጭነትን ለመከላከል መሳሪያዎችን ያቀርባል.

CSRF ምንድን ነው?

CSRF የተጠቃሚ ክፍለ-ጊዜዎችን ያጠቃል። ይህን የሚያደርጉት ተጠቃሚው ሳያውቅ በድብቅ ቅጽ መለያዎች ወይም ተንኮል አዘል ዩአርኤሎች (ምስሎች ወይም ማገናኛዎች) ጥያቄ እንዲያቀርብ ተጠቃሚን በማታለል ነው።

ይህ ጥቃት በተጠቃሚ ክፍለ-ጊዜ ሁኔታ ላይ ለውጥን ያመጣል, የውሂብ ፍንጣቂዎች እና አንዳንድ ጊዜ ጠላፊዎች በመተግበሪያ ውስጥ የዋና ተጠቃሚ ውሂብን ሊቆጣጠሩ ይችላሉ.

ከላይ ያለው ምስል የድር ደህንነት የሚጣስበትን ሁኔታ ያሳያል። ተጎጂው ሊንክ ላይ ጠቅ በማድረግ (ተቀባይነት ያለው) ጥያቄን ወደ ድህረ ገጽ አገልጋይ በመላክ ጠላፊው የሚፈልገውን ውጤት ያስገኛል፣ እሱም የድረ-ገፁን አገልጋይ ለማግኘት እና ለመቆጣጠር ጠቃሚ መረጃዎችን ይዞ ይመጣል።

የCSRF ጥያቄዎችን እንዴት መከላከል እንደሚቻል

ለማሻሻል መያዣ የመተግበሪያዎችዎ ድር፣ በእያንዳንዱ የተጠቃሚ ክፍለ ጊዜ፣ ላራቬል ደህንነቱ የተጠበቀ ቶከኖችን ያመነጫል ይህም የተረጋገጠ ተጠቃሚ መተግበሪያውን የሚጠይቅ መሆኑን ለማረጋገጥ ነው።

ምክንያቱም ይህ ማስመሰያ የተጠቃሚ ክፍለ ጊዜ በታደሰ ቁጥር ስለሚቀየር አጥቂ ሊደርሰው አይችልም።

የተጠቃሚ መረጃን በአገልጋይ በኩል ለመለወጥ ጥያቄ በሚቀርብበት ጊዜ (የጀርባ ጀርባ) እንደ POSTPUTPATCHDELETE, መመሪያውን ማካተት አለብዎት @csrf በጥያቄው ቅጽ blade HTML የ @csrf ስለዚህ መመሪያ ነው Blade በመተግበሪያው የተረጋገጠ የተደበቀ ማስመሰያ ለመፍጠር ጥቅም ላይ ይውላል።

መመሪያው Blade በLaravel አብነት ሞተር ውስጥ ጥቅም ላይ የዋለው አገባብ ነው። ስለት . ፋይል ለመፍጠር blade ስም መስጠት አለብህ - በእኛ ሁኔታ ቅፅ - ከዚያም የቢላውን ማራዘሚያ ተከትሎ. ይህ ማለት ፋይሉ ስሙ ይኖረዋል ማለት ነው። form.blade.php.

ፋይሉ ጥቅም ላይ ይውላል blade በድረ-ገጹ ላይ ለተጠቃሚዎች እይታዎችን ለማቅረብ ሁለት ቅድመ-መመሪያዎች አሉ።defiሊጠቀሙበት የሚችሉት nite ወይም blade shorthand አገባብ። ለምሳሌ, @if ሁኔታው መሟላቱን ያረጋግጡ ፣ @empty መዝገቦቹ ባዶ ካልሆኑ ያረጋግጡ ፣ @auth ተጠቃሚው የተረጋገጠ ከሆነ እና ወዘተ.

ግን ወደ መመሪያው እንመለስ @csrf. እንዴት እንደሚጠቀሙበት እነሆ፡-

<form method="POST" action="{{route('pay')}}">

    @csrf
    
</form>

የላራቬል የቀድሞ ስሪቶች የተለየ ቅንብር ነበራቸው፡ ሁለቱም ይሠራሉ እና አንድ አይነት ነገር ያደርጋሉ።

የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።
<form method="POST" action="{{route('pay')}}">
    
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />
    
</form>

የCSRF ቶከን ከሚቀርበው የቅፅ ጥያቄ ሲጠፋ ወይም ልክ ያልሆነ ሆኖ ከተገኘ ላራቬል የ 419 ሁኔታ ኮድ ያለው "ገጽ ጊዜው ያለፈበት" የስህተት መልእክት ይጥላል።

የCSRF ማረጋገጫ እንዴት እና የት እንደሚካሄድ

መካከለኛው ዕቃ VerifyCsrfToken በLaravel መተግበሪያ ውስጥ የCSRF ማረጋገጫን ይቆጣጠራል። የ middleware ውስጥ ተመዝግቧል Kernel.php እና በማውጫው ውስጥ ይገኛል app/Http/Middleware. ይህ ማለት የ middleware ከኤፒአይዎች ጋር ያልተዛመደ በድር ውስጥ ላሉ ጥያቄዎች የተቀሰቀሰ ነው።

protected $middlewareGroups = [
        'web' => [
           .
           .
           .
           .
           .
            \App\Http\Middleware\VerifyCsrfToken::class,
        ],
    ];

የVerifyCsrfToken መካከለኛ ዌር ክፍሉን ያራዝመዋል Illuminate\Foundation\Http\Middleware\VerifyCsrfToken፣ ማለትም የCSRF ማረጋገጫ ነው። defiበክፍል ውስጥ nite.

ላራቬል የCSRF ማረጋገጫን እንዴት እንደሚይዝ ለማወቅ ጠለቅ ብለን እንይ።

በክፍሉ ውስጥ, ተግባሩ አለን tokensMatch.

protected function tokensMatch($request)
{
     $token = $this->getTokenFromRequest($request);

     return is_string($request->session()->token()) &&
            is_string($token) &&
            hash_equals($request->session()->token(), $token);
}

በኮዱ ውስጥ ክፍለ ጊዜው እና የግቤት CSRF ቶከኖች ይዛመዳሉ ወይ ይወስናል።

ተግባሩ ሁለት ነገሮችን ያደርጋል-

  1. ማግኘት $this->getTokenFromRequest በድብቅ መስክ ወይም በጥያቄው ራስጌ በኩል የተያያዘው የመጪው ጥያቄ ምልክት። ማስመሰያው ዲክሪፕት ከተደረገ በኋላ ወደ ማስመሰያው ተለዋዋጭ ይመለሳል።
protected function getTokenFromRequest($request)
{
    $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN');

    if (! $token && $header = $request->header('X-XSRF-TOKEN')) {
        try {
            $token = CookieValuePrefix::remove($this->encrypter->decrypt($header, static::serialized()));
        } catch (DecryptException $e) {
            $token = '';
            }
    }

    return $token;
}

በኮዱ ውስጥ ከራስጌ ማስመሰያ ያገኛል

2. ሁለቱንም የጥያቄ ማስመሰያ እና ክፍለ ጊዜውን ወደ ሕብረቁምፊ ውሰድ እና ከዚያ ተጠቀም hash_equals ሁለቱም ሕብረቁምፊዎች እኩል ከሆኑ ለማነፃፀር በ PHP ውስጥ የተሰራ። የዚህ ቀዶ ጥገና ውጤት ሁልጊዜ ነው ቡል (እውነት) ወይም (ውሸት) .

Ercole Palmeri

የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።

የቅርብ ጊዜ ጽሁፎች

Veeam ከጥበቃ እስከ ምላሽ እና ማገገሚያ ድረስ ለቤዛዌር በጣም አጠቃላይ ድጋፍን ያቀርባል

Coveware by Veeam የሳይበር ዘረፋ የአደጋ ምላሽ አገልግሎቶችን መስጠቱን ይቀጥላል። Coveware የፎረንሲክስ እና የማገገሚያ ችሎታዎችን ያቀርባል…

23 April 2024

አረንጓዴ እና ዲጂታል አብዮት፡- የመተንበይ ጥገና የነዳጅ እና ጋዝ ኢንዱስትሪን እንዴት እየለወጠ ነው።

የመተንበይ ጥገና የዘይት እና ጋዝ ዘርፉን አብዮት እያደረገ ነው፣ ለዕፅዋት አስተዳደር ፈጠራ እና ንቁ አቀራረብ።…

22 April 2024

የዩኬ ፀረ እምነት ተቆጣጣሪ የBigTech ማንቂያ በጄኔአይ ላይ ያስነሳል።

የዩኬ ሲኤምኤ ስለ ቢግ ቴክ ባህሪ በአርቴፊሻል ኢንተለጀንስ ገበያ ላይ ማስጠንቀቂያ ሰጥቷል። እዚያ…

18 April 2024

ካሳ አረንጓዴ፡ ለወደፊት ጣሊያን የኢነርጂ አብዮት

የሕንፃዎችን ኢነርጂ ውጤታማነት ለማሳደግ በአውሮፓ ህብረት የተቀረፀው የ"ኬዝ አረንጓዴ" ድንጋጌ የህግ አውጭ ሂደቱን በ…

18 April 2024

ፈጠራን በቋንቋዎ ያንብቡ

የኢኖቬሽን ጋዜጣ
በፈጠራ ላይ በጣም አስፈላጊ የሆነውን ዜና እንዳያመልጥዎት። በኢሜል ለመቀበል ይመዝገቡ።

ይከተሉን