Laravel CSRF保護(hù)

csrf指的是跨網(wǎng)站偽造攻擊網(wǎng)絡(luò)應(yīng)用程序。csrf攻擊是系統(tǒng)的經(jīng)過(guò)身份驗(yàn)證的用戶執(zhí)行的未經(jīng)授權(quán)的活動(dòng)。因此,許多web應(yīng)用程序都容易受到這些攻擊。

laravel以下列方式提供csrf保護(hù) -

laravel包含一個(gè)內(nèi)置的csrf插件,可為每個(gè)活動(dòng)用戶會(huì)話生成令牌。這些令牌會(huì)驗(yàn)證操作或請(qǐng)求是否由有關(guān)的已驗(yàn)證用戶發(fā)送。

 

履行

本節(jié)詳細(xì)討論了在laravel中實(shí)施csrf保護(hù)。在繼續(xù)進(jìn)行csrf保護(hù)之前,以下幾點(diǎn)值得注意 -

  • csrf在web應(yīng)用程序中聲明的html表單中實(shí)現(xiàn)。您必須在表單中包含隱藏的經(jīng)過(guò)驗(yàn)證的csrf令牌,以便laravel的csrf保護(hù)中間件可以驗(yàn)證請(qǐng)求。語(yǔ)法如下所示 -
    {{ csrf_field() }}
   ... 
  • 您可以使用javascript http庫(kù)方便地構(gòu)建javascript驅(qū)動(dòng)的應(yīng)用程序,因?yàn)檫@包括csrf令牌給每個(gè)傳出的請(qǐng)求。

  • 文件 resources / assets / js / bootstrap.js 注冊(cè)了laravel應(yīng)用程序的所有標(biāo)記,并包含 meta 標(biāo)記,它存儲(chǔ)了帶有 axios http庫(kù)的 csrf標(biāo)記 。 **

沒有csrf令牌的表單

考慮以下幾行代碼。他們展示了一個(gè)表單,它以兩個(gè)參數(shù)作為輸入: 電子郵件 和 消息 。

     email               

    message        

上面顯示的表格將接受來(lái)自授權(quán)用戶的任何輸入信息。這可能會(huì)使web應(yīng)用程序容易受到各種攻擊。

請(qǐng)注意,提交按鈕包含控制器部分的功能。所述 后接觸 功能在控制器為該關(guān)聯(lián)視圖使用。如下所示 -

public function postcontact(request $request){
   return $request-> all();
}

請(qǐng)注意,表單不包含任何csrf令牌,因此作為輸入?yún)?shù)共享的敏感信息容易受到各種攻擊。

帶有csrf令牌的表單

以下幾行代碼向您展示了使用csrf令牌重新設(shè)計(jì)的表單 -

    {{ csrf_field() }}
    email         

    message           

實(shí)現(xiàn)的輸出將返回帶有如下所示令牌的json -

{
   "token": "ghfleifxdsuyew9we67877cxnvfjkl",
   "name": "codingdict",
   "email": "contact@codingdict.com"
}

這是單擊“提交”按鈕時(shí)創(chuàng)建的csrf標(biāo)記。

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频