Heim > php教程 > php手册 > Hauptteil

php 防跨站攻击测试例子

WBOY
Freigeben: 2016-05-25 16:41:40
Original
1383 Leute haben es durchsucht

跨站攻击就是利用程序上的一些细节或bug问题进行的了,那么我们要如何防止跨站攻击呢?下面我们费话不说多了来给大家整理一个防止跨站攻击例子,希望对各位有帮助.

php 防跨站攻击测试例子代码如下:

<?php
/** 
 * enc
 */
function encrypt($token_time) {
    return md5(&#39;!@##$@$$#%43&#39; . $token_time);
}
$token_time = time();
$token = encrypt($token_time);
$expire_time = 10;
if ($_POST) {
    $_token_time = $_POST[&#39;token_time&#39;];
    $_token = $_POST[&#39;token&#39;];
    if ((time() & ndash;
    $_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&#39; /> 
<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>
Nach dem Login kopieren

通过在你的表单中包括验证码,事实上已经消除了跨站请求伪造攻击的风险,可以在任何需要执行操作的任何表单中使用这个流程,当然,将token 存储到session更好,这儿只是简单示例下.

简单分析:token防攻击也叫作(令牌)了,我们在用户访问页面时就生成了一个随机的token保存session与表单了,用户提交时如果我们获取到的token与session不一样就可以提交重新输入提交数据了.


教程网址:

欢迎收藏∩_∩但请保留本文链接。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage