php通过session防url攻击方法

yipeiwu_com6年前PHP代码库

本文实例讲述了php通过session防url攻击方法。分享给大家供大家参考。具体实现方法如下:

通过session跟踪,可以很方便地避免url攻击的发生,php采用session防url攻击方法代码如下:

复制代码 代码如下:
<?php
session_start(); 
$clean = array(); 
$email_pattern = '/^[^@s<&>]+@([-a-z0-9]+.)+[a-z]{2,}$/i'; 
if (preg_match($email_pattern, $_POST['email'])) 
{
$clean['email'] = $_POST['email']; 
$user = $_SESSION['user']; 
$new_password = md5(uniqid(rand(), TRUE)); 
if ($_SESSION['verified']) 

/* Update Password */ 
mail($clean['email'], 'Your New Password', $new_password); 


?>

使用时URL可设置如下:
http://example.org/reset.php?user=php&email=chris%40example.org

如果reset.php信任了用户提供的这些信息,这就是一个语义URL 攻击漏洞,在此情况下,系统将会为php 帐号产生一个新密码并发送至chris@example.org,这样chris 成功地窃取了php 帐号.

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

PHP中for与foreach的区别分析

注意: 除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。 1. 自p...

PHP正则判断一个变量是否为正整数的方法

方法1 判断正整数 $keyword = '10'; // 0 1.1 1 if(preg_match("/^[1-9][0-9]*$/",$keyword)){ echo "是...

php面向对象程序设计入门教程

本文实例讲述了php面向对象程序设计。分享给大家供大家参考,具体如下: 1.面向对象与面向过程的对比 面向过程:以事件为中心,分几个步骤去完成。不可扩展,html与php不分离 面向对象...

探讨:如何通过stats命令分析Memcached的内部状态

Memcached有个stats命令,通过它可以查看Memcached服务的许多状态信息。使用方法如下:先在命令行直接输入telnet 主机名端口号,连接到memcached服务器,然后...

PHP中利用substr_replace将指定两位置之间的字符替换为*号

复制代码 代码如下: $username = "zongzi"; echo substr_replace($username,'**','1','2');...