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+APACHE实现用户论证的方法
Oct 09 PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
php intval的测试代码发现问题
Jul 27 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
使用URL传输SESSION信息
Jul 14 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
php生成带logo二维码方法小结
Apr 08 PHP
php远程下载类分享
Apr 13 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 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制作图型计数器的例子
2006/10/09 PHP
php输出xml属性的方法
2015/03/19 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
python如何调用java类
2020/07/05 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
车间核算员岗位职责
2014/07/01 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
孩子教育的心得体会
2014/09/01 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
亲属关系公证书样本
2015/01/23 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
什么是Python装饰器?如何定义和使用?
2022/04/11 Python
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技