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 相关文章推荐
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
BBS(php &amp; mysql)完整版(五)
Oct 09 PHP
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
PHP删除数组中空值的方法介绍
Apr 14 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
PHP中的类型约束介绍
May 11 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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 版获取重定向后的地址(代码)
2013/06/26 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
YII Framework框架教程之国际化实现方法
2016/03/14 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php文件上传类的分享
2017/07/06 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
JavaScript 程序编码规范
2010/11/23 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
微信小程序实现时间戳格式转换
2020/07/20 Javascript
Python zip()函数用法实例分析
2018/03/17 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
统计每一学生的平均成绩
2014/06/06 面试题
管理学专业个人求职信范文
2013/12/13 职场文书
清扬洗发水广告词
2014/03/14 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书