您好,登錄后才能下訂單哦!
本篇文章為大家展示了利用php怎么實(shí)現(xiàn)一個(gè)跨站攻擊,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
跨站攻擊就是利用程序上的一些細(xì)節(jié)或bug問(wèn)題進(jìn)行的,那么我們要如何耿防止跨站攻擊呢?下面就以一個(gè)防止跨站攻擊例子來(lái)說(shuō)明,希望對(duì)各位有幫助。
代碼如下:
<?php
#demo for prevent csrf
/**
* enc
*/
function encrypt($token_time) {
return md5('!@##$@$$#%43' . $token_time);
}
$token_time = time();
$token = encrypt($token_time);
$expire_time = 10;
if ($_POST) {
$_token_time = $_POST['token_time'];
$_token = $_POST['token'];
if ((time() – $_token_time) > $expire_time) {
echo “expired token”;
echo “<br />”;
}
echo $_token;
echo “<br />”;
$_token_real = encrypt($_token_time);
echo $_token_real;
//compare $_token and $_token_real
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
<title>test for csrf</title>
<meta http-equiv=”" content=”" />
</head>
<body>
<form method=”post” action=”">
<input type=”text” name=”text” id=”" value=”hello” />
<input type=”hidden” name=”token” id=”" value=”<?php echo $token ?>” />
<input type=”hidden” name=”token_time” id=”" value=”<?php echo $token_time ?>” />
<input type=”submit” name=”submit” id=”" value=”submit” />
</form>
</body>
</html>
通過(guò)在你的表單中包括驗(yàn)證碼,你事實(shí)上已經(jīng)消除了跨站請(qǐng)求偽造攻擊的風(fēng)險(xiǎn)??梢栽谌魏涡枰獔?zhí)行操作的任何表單中使用這個(gè)流程
當(dāng)然,將token 存儲(chǔ)到session更好,這里只是簡(jiǎn)單示例下
簡(jiǎn)單分析:
token防攻擊也叫作令牌,我們?cè)谟脩粼L問(wèn)頁(yè)面時(shí)就生成了一個(gè)隨機(jī)的token保存session與表單了,用戶提交時(shí)如果我們獲取到的token與session不一樣就可以提交重新輸入提交數(shù)據(jù)了
上述內(nèi)容就是利用php怎么實(shí)現(xiàn)一個(gè)跨站攻擊,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。