PHP偽協議,csrf防御 php,跨站請求偽造CSRF的防御實例(PHP版本)

 2023-12-01 阅读 24 评论 0

摘要:跨站請求偽造CSRF的防御:One-Time Tokens(不同的表單包含一個不同的偽隨機值)在實現One-TimeTokens時,需要注意一點:就是“并行會話的兼容”。如果用戶在一個站點上同時打開了兩個不同的表單,CSRF保護措施不應該影響到他對任何表單的提PHP偽協議、

跨站請求偽造CSRF的防御:One-Time Tokens(不同的表單包含一個不同的偽隨機值)

在實現One-Time

Tokens時,需要注意一點:就是“并行會話的兼容”。如果用戶在一個站點上同時打開了兩個不同的表單,CSRF保護措施不應該影響到他對任何表單的提

PHP偽協議、交。考慮一下如果每次表單被裝入時站點生成一個偽隨機值來覆蓋以前的偽隨機值將會發生什么情況:用戶只能成功地提交他最后打開的表單,因為所有其他的表單

都含有非法的偽隨機值。必須小心操作以確保CSRF保護措施不會影響選項卡式的瀏覽或者利用多個瀏覽器窗口瀏覽一個站點。

以下我的實現:

1).先是令牌生成函數(gen_token()):

php防注入,function gen_token() {

//這里我是貪方便,實際上單使用Rand()得出的隨機數作為令牌,也是不安全的。

$token = md5(uniqid(rand(), true));

return $token;

sessionid防跨站?}

2).然后是Session令牌生成函數(gen_stoken()):

function gen_stoken() {

$pToken = "";

csrf跨站請求、if($_SESSION[STOKEN_NAME] == $pToken){

//沒有值,賦新值

$_SESSION[STOKEN_NAME] = gen_token();

}

php安全攻防,else{

//繼續使用舊的值

}

}

php防抓包、?>

3).WEB表單生成隱藏輸入域的函數:

function gen_input() {

gen_stoken();

怎么防御偽造協議頭?echo “

value=\”" . $_SESSION[STOKEN_NAME] . “\”> “;

}

?>

php靜態整站劫持代碼?4).WEB表單結構:

session_start();

include(”functions.php”);

?>

gen_input(); ?>

5).服務端核對令牌:

這個很簡單,這里就不再啰嗦了。

上面這個其實不完全符合“并行會話的兼容”的規則,大家可以在此基礎上修改。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/187015.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息