防止CSRF跨域攻擊

2021-07-04 04:43:48 字數 1348 閱讀 5270

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 中...