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 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
解析php多线程下载远程多个文件
Jun 25 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
PHP中单引号与双引号的区别分析
Aug 19 PHP
PHP生成压缩文件实例
Feb 07 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
php修改数组键名的方法示例
Apr 15 PHP
php7 安装yar 生成docker镜像
May 09 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 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程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
php使用curl访问https示例分享
2014/01/17 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php实用代码片段整理
2016/11/12 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
简单实现js浮动框
2016/12/13 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
机器学习python实战之决策树
2017/11/01 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
Python进程池Pool应用实例分析
2019/11/27 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
详解Django配置JWT认证方式
2020/05/09 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
性能服装:HYLETE
2018/08/14 全球购物
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
园林毕业生自我鉴定范文
2013/12/29 职场文书
教师个人自我鉴定
2014/02/08 职场文书
2015年公司工作总结
2015/04/25 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers