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模拟HTTP认证
Oct 09 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
php 静态化实现代码
Mar 20 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
php实现学生管理系统
Mar 21 PHP
PHP设置images目录不充许http访问的方法
Nov 01 PHP
php pdo操作数据库示例
Mar 10 PHP
php提交表单时保留多个空格及换行的文本样式的方法
Jun 20 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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 设计模式之 工厂模式
2008/12/19 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
django 实现简单的插入视频
2020/04/07 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
抽奖活动主持词
2014/03/31 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
公司食堂管理制度
2015/08/05 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
Python打包为exe详细教程
2021/05/18 Python
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js