日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

黑马lavarel教程---4、csrf验证及相关

發布時間:2025/7/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马lavarel教程---4、csrf验证及相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

黑馬lavarel教程---4、csrf驗證及相關

一、總結

一句話總結:

csrf驗證就像短信驗證碼那樣驗證用戶身份,這個驗證是為了驗證是本站的操作,用的是一個token字符串,外站如果有了這個token字符串,也是可以請求的

?

1、Laravel框架中避免CSRF攻擊原理?

Laravel框架中避免CSRF攻擊很簡單:Laravel自動為【每個用戶Session】生成了一個CSRF Token,該Token可用于驗證登錄用戶和發起請求者是否是同一人,如果不是則請求失敗。【該原理和驗證碼的原理是一致】

?

2、Csrf_token和Csrf_field的區別?

Csrf_token只是輸出token的值,Csrf_field輸出了一個整個的input隱藏域

?

3、如何查看csrf_token值?

全局幫助函數csrf_token來獲取該Token值
Laravel提供了一個全局幫助函數csrf_token來獲取該Token值,因此只需在視圖提交表單中添加如下HTML代碼即可在請求中帶上Token: <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

?

?

4、{{csrf_token}}和{{csrf_field}}如何選擇?

異步ajax的時候必須Csrf_token,表單的時候推薦Csrf_field,省事

?

5、外部網站怎么能在有csrf驗證的情況下進行csrf攻擊?

將用戶對應的token值放在input隱藏域里面,請求地址還是比較好獲取的
<input type="hidden" name="_token" value="U34XbEpI81k9b9FLgHZiVZUQWkbjcbbp6Z4SQUbwP">

?

?

6、從CSRF驗證中排除例外路由:并不是所有請求都需要避免CSRF攻擊,比如去第三方API獲取數據的請求?

可以通過在VerifyCsrfToken(app/Http/Middleware/VerifyCsrfToken.php)中間件中將要排除的請求URL添加到$except屬性數組中
protected $except=[//該處寫需排除csrf驗證的路由'home/test/test7''home/test/test' ];

?

?

?

?

二、csrf驗證及相關

1、什么是CSRF攻擊

CSRF是跨站請求偽造(Cross-site request forgery)的英文縮寫:

Laravel框架中避免CSRF攻擊很簡單:Laravel自動為每個用戶Session生成了一個CSRF Token,該Token可用于驗證登錄用戶和發起請求者是否是同一人,如果不是則請求失敗。【該原理和驗證碼的原理是一致

Laravel提供了一個全局幫助函數csrf_token來獲取該Token值,因此只需在視圖提交表單中添加如下HTML代碼即可在請求中帶上Token:

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

?

2、Laravel中如何避免CSRF攻擊

案例:通過案例實現csrf的機制驗證

①創建兩個路由,一個用于展示表單(get),另外處理請求(post)

?

?

?

?

②創建需要的方法

?

?

?

?

③創建需要的簡易表單

?

?

?

效果:

?

?

?

?

④提交效果(報錯頁面)

?

?

?

?

結論:通過剛才的案例,說明在laravel中csrf驗證機制默認是開啟的

?

⑤解決報錯問題(如何通過csrf驗證)

解決思路:帶上csrf需要token值,隨著請求傳遞給后續的方法

?

?

?

?

針對csrf_token方法的簡化:{{csrf_field()}}

?

?

?

具體的表現形式:

?

?

?

?

兩者的區別:

Csrf_token只是輸出token的值

Csrf_field輸出了一個整個的input隱藏域

?

在后期使用的時候怎么選擇:大部分情況下可以自己根據情況選擇。但是有一個情況下開發者是沒有選擇權限的,必須需要使用csrf_token的,這個情況就是使用異步提交表單的方式。

?

3、從CSRF驗證中排除例外路由

并不是所有請求都需要避免CSRF攻擊,比如去第三方API獲取數據的請求。

可以通過在VerifyCsrfToken(app/Http/Middleware/VerifyCsrfToken.php)中間件中將要排除的請求URL添加到$except屬性數組中:

?

?

?

?

通過編寫配置設置例外:

單個路由排除寫法

?

?

?

?

多個元素之間通過“,”分割,遵循數組寫法。

?

?

如果需要排除全部路由使用csrf的話,則可以寫成:

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/Renyi-Fan/p/11324826.html

總結

以上是生活随笔為你收集整理的黑马lavarel教程---4、csrf验证及相关的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。