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 base64+gzinflate压缩编码和解码代码
Oct 03 PHP
PHP 引用是个坏习惯
Mar 12 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
php实现统计IP数及在线人数的示例代码
Jul 22 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
Home Coffee Roasting
2021/03/03 咖啡文化
WINXP下apache+php4+mysql
2006/11/25 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
Bath & Body Works阿联酋:在线购买沐浴和身体用品
2021/02/27 全球购物
趣味游戏活动方案
2014/02/07 职场文书
2014年党支部学习材料
2014/05/19 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
python实现简单的聊天小程序
2021/07/07 Python