csrf主要是指有些人使用自動表單提交不停的請求你的**,或者使用非法請求連線訪問站點,防止這些攻擊也比較容易就是在自己**做乙個token驗證基本就防止了非法請求,正常清楚我們生成的唯一token進行行為驗證,如果token通過則執行操作,否則就不通過,防止了無限請求刷自己**的情況。
首先生成token存到session中:
index.php
//生成乙個密匙
function create_key()
//產生token
function create_token()
session_start();
$_session['client_key'] = create_token();
$_session['server_key'] = $_session['client_key'];
header("location:login.php");
login.php
<?php
session_start();
$key = $_session['client_key'];
?>
dologin.php
<?php
sleep(1);
//print_r($_post);
extract($_post);
//判斷key是否相等
session_start();
$server_key = $_session['server_key'];
//判斷是否有csrf引數
if (!array_key_exists('csrf', $_post))
else if($server_key != $csrf)else
?>
這些**只是簡單的驗證了一下token,實際開發中,token的生成可能規則不是這麼簡單,這樣寫就防止,不法分子使用自動表單來不停的對**傳送請求了,那個防重新整理表單重複提交其實,原理都差不多,不太難理解,大家隨意參考下吧。
測試結果:
非法請求:
帶了csrf引數,但是token不正確:
正確請求:
防止CSRF攻擊
2.新增校驗token。前端發出請求時,加入從後端返回的token欄位的值 不能儲存在cookie中 攻擊者無法偽造的值 如果token不正確,不通過請求。3.設定 cookie 的samesite屬性 lax 相對嚴格模式,大多數情況下不傳送 cookie,導航到目標 的 get 請求除外。請求型...
MVC防止CSRF攻擊
可能我們大多數人做web的時候不會太注意這個問題,但是這是乙個很重要的乙個點。我們寫 寫業務的時候也應該從各方面多思考。首先就是先簡單介紹下什麼是csrf csrf 全程是 cross site request forgery 中文意思就是跨站請求偽造。和跨站指令碼xss不同,xss的特點是利用站內...
CSRF跨站點偽造攻擊?
跨站點偽造,顧名思義,在另外乙個站點存在著訪問被攻擊站點的鏈結,鏈結觸發後會攜帶被攻擊連線的cookie。這樣就偽造了一條非使用者自身的操作。危險!假如有以下場景 1 你在某社交 上面進行了登入。使用完後並沒有登出,而 使用cookie標識使用者狀態。2 此時你訪問了某個知名顏色 這個 html 中...