php跨站攻击实例分析


Posted in PHP onOctober 28, 2014

本文实例讲述了php跨站攻击的原理与防范技巧。分享给大家供大家参考。具体方法分析如下:

跨站攻击就是利用程序上的一些细节或bug问题进行的,那么我们要如何耿防止跨站攻击呢?下面就以一个防止跨站攻击例子来说明,希望对各位有帮助。

<?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>

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

简单分析:

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

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
PHP语言中global和$GLOBALS[]的分析 之二
Feb 02 PHP
基于PHP常用函数的用法详解
May 10 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
PHP中批量生成静态html(命令行下运行PHP)
Apr 19 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
php获取根域名方法汇总
Oct 28 #PHP
3款值得推荐的微信开发开源框架
Oct 28 #PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 #PHP
smarty中js的调用方法示例
Oct 27 #PHP
Smarty中常用变量操作符汇总
Oct 27 #PHP
Smarty中调用FCKeditor的方法
Oct 27 #PHP
smarty简单分页的实现方法
Oct 27 #PHP
You might like
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
numpy中矩阵合并的实例
2018/06/15 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
软件测试题目
2013/02/27 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
应届毕业生的个人自我鉴定
2013/10/24 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
家庭贫困证明
2014/09/23 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
Python3 如何开启自带http服务
2021/05/18 Python