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 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 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 flush类输出缓冲剖析
2008/10/19 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
JavaScript之编码规范 推荐
2012/05/23 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
javascript编写简易计算器
2017/05/06 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
python3 拼接字符串的7种方法
2018/09/12 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python中几种自动微分库解析
2019/08/29 Python
Python必须了解的35个关键词
2020/07/16 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
Python常用外部指令执行代码实例
2020/11/05 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
四查四看剖析材料
2014/02/14 职场文书
教师暑期培训感言
2014/08/15 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android
Python简易开发之制作计算器
2022/04/28 Python