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中用文本文件做数据库的实现方法
Mar 27 PHP
php session 错误
May 21 PHP
php 生成随机验证码图片代码
Feb 08 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php.ini save_handler 修改不生效的解决办法
Jul 22 PHP
php查找字符串出现次数的方法
Dec 01 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
php中namespace use用法实例分析
Jan 22 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
php7 新增功能实例总结
May 25 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
利用django如何解析用户上传的excel文件
2017/07/24 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
Python3爬楼梯算法示例
2019/03/04 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
什么是python的函数体
2020/06/19 Python
python的链表基础知识点
2020/09/13 Python
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
商场总经理岗位职责
2014/02/03 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python
python spilt()分隔字符串的实现示例
2021/05/21 Python
如何在C++中调用Python
2021/05/21 Python
Python实现简单的猜单词
2021/06/15 Python
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python