`
chinagdvea
  • 浏览: 131231 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
社区版块
存档分类
最新评论

检测用户是否修改url

 
阅读更多
检测思路:
在url用参数和key上生成一段hash值,如果参数别修改则生成的hash值和正确的hash值对不上,则验证失败

使用的加密类库:
PEAR2里的Crypt_HMAC2,需要下载引入

用户url列表,生成hash值
cryptForm.php

<?php
	require( 'D:\PHP\PEAR\Crypt\HMAC2.php' );

	#生成hash值的key
	define( 'HASH_KEY' , 'Test Hash Key' );
	
	#生成hash值类
	function createHash( $paramsArray )
	{
		$data = '';
		$ret = array();
		
		#构造加密字符串
		foreach( $paramsArray as $key => $value )
		{
			$data .= $key . $value;
		}
		
		$cryptor = new Crypt_HMAC2( HASH_KEY , 'md5' );
		
		$hash = $cryptor->hash( $data );
		
		return $hash;
	}
?>
<html>
<head>
</head>
<body>
	<ul>
		<li>
			<a href="validateHash.php?id=1&hash=<?php echo createHash( array( 'id' => 1 ) ); ?>">ChatLiu</a>
		</li>
		<li>
			<a href="validateHash.php?id=2&hash=<?php echo createHash( array( 'id' => 2 ) ); ?>">BruceLee</a>		
		</li>
	</ul>
</body>
</html>


生成的页面为

<html>
<head>
</head>
<body>
	<ul>
		<li>
			<a href="validateHash.php?id=2&amp;hash=5dbd509b6e9dd26a8d3c7d1a5e3cc4e5">ChatLiu</a>
		</li>
		<li>
			<a href="validateHash.php?id=2&amp;hash=84ecf3a0d5859281e074ee58d4f1d51d">BruceLee</a>		
		</li>
	</ul>

</body>
</html>


点击url后的验证类

<?php
	require( 'D:\PHP\PEAR\Crypt\HMAC2.php' );

	define( 'HASH_KEY' , 'Test Hash Key' );
	
	#验证用户是否修改url类
	function validateHash( $paramsArray , $userHash )
	{
		$data = '';
		$ret = array();
		
		#构造加密字符串
		foreach( $paramsArray as $key => $value )
		{
			$data .= $key . $value;
		}
		
		$cryptor = new Crypt_HMAC2( HASH_KEY , 'md5' );
		
		$hash = $cryptor->hash( $data );
		
		#验证url传过来的hash值是否与加密hash值相等
		return $hash == $userHash ? TRUE : FALSE;
	}
	
	if( isset( $_GET['id'] ) && isset( $_GET['hash'] ) )
	{
		$id = $_GET['id'];
		$hash = $_GET['hash'];
		
		$result = validateHash( array( 'id' => $id ) , $hash );
		
		if( $result )
		{
			echo 'good guy, you didn\'t touch my url';
		} else
		{
			echo 'bad guy, don\'t touch my url';
		}
	} else
	{
		die( 'parameter missed' );
	}
?>


若url未被修改,返回

引用
good guy, you didn't touch my url


如果用户修改了id,则传入和hash和正确的hash对不上,返回

引用
bad guy, don't touch my url


分享到:
评论

相关推荐

    网御入侵检测系统V3.2.72.0用户手册

    ### 网御入侵检测系统V3.2.72.0用户手册知识点解析 #### 一、系统介绍 **1.1 概述** 网御入侵检测系统V3.2.72.0是一款先进的网络监控解决方案,旨在帮助企业监测、分析并应对网络安全威胁。该系统集成了实时监测...

    url编辑插件

    4. **安全检测**:检查URL是否安全,避免点击潜在的恶意链接。 5. **分享和导出**:将整理好的URL列表导出为文本文件或CSV,方便共享和备份。 **应用场景** 1. **SEO优化**:SEO专业人员可以使用插件批量修改URL的...

    一个检测一个URL是否在Cache中的程序。(3KB)...

    标题中的“一个检测一个URL是否在Cache中的程序”指的是一个计算机程序,它的主要功能是检查指定的统一资源定位符(URL)是否已经被浏览器或者网络缓存系统存储。这个程序可能是用编程语言编写的,比如VBScript...

    基于 对抗学习的恶意URL检测.zip

    这些数据集通常包含大量已标记的URL,标记信息表明URL是否为恶意。训练模型时,通常会将数据集分为训练集、验证集和测试集,以便评估模型的性能。 总的来说,这个项目展示了如何结合深度学习和对抗学习来构建一个...

    HDWiki 5.1 任意用户密码修改漏洞及修复

    在 dogetpass 函数中,有一个逻辑判断语句,该语句用于检查提交的验证码是否正确,但是该语句存在逻辑错误,导致攻击者可以修改任意用户的密码。 该漏洞的成因是由于在 dogetpass 函数中,直接使用 $this-&gt;post['...

    URL解码器(恶意网址修改辅助工具)

    标题中的“URL解码器(恶意网址修改辅助工具)”是指一种专门用于处理和解析URL编码的软件工具,尤其在网络安全领域中,它被用来帮助识别和分析潜在的恶意网址。这种工具通常能够将经过编码的URL转换回其原始形式,...

    一个检测一个URL是否在Cache中的程序。(3KB)

    标题中的“一个检测一个URL是否在Cache中的程序”是指一个计算机程序,它的主要功能是检查指定的统一资源定位符(URL)是否已经被浏览器或者本地缓存系统存储。这个程序可能是用Visual Basic(VB)编写的,因为提供...

    安卓开发框架工具类相关-安卓版本检测工具类CheckVersion用于检测版本是否需要更新换掉url地址直接可以用.rar

    这个工具类可以方便地集成到你的项目中,通过修改URL地址即可实现远程版本信息的获取。 首先,我们来详细了解一下CheckVersion工具类的工作原理。通常,该类会通过网络请求到一个服务器接口,该接口返回一个包含...

    Java Web应用开发:个人信息修改.docx

    - **成功修改后的测试**:在成功修改信息后返回主页,检查数据库中的用户信息是否已正确更新。 - **未登录情况下的测试**:尝试直接访问个人信息修改页面的URL(例如:http://.//pages/customer/userEdit.jsp),应...

    linux内核实现url重定向

    通常,这样的功能会通过网络过滤(如Netfilter或iptables)或者网络驱动程序来实现,通过对网络数据包进行深度检测和修改,将用户的请求重定向到不同的服务器。这个内核模块的实现涉及到了内核级的网络包处理、内存...

    asp整合ucenter 注册 登陆 修改 删除 检测短信等功能

    整合ASP与Ucenter,通常需要编写或使用现成的接口脚本,例如`ucenter.asp`,将ASP应用的用户注册、登录、修改、删除等操作与Ucenter的数据同步。 2. **注册功能** 用户注册通常涉及收集用户信息,如用户名、密码、...

    网站线路检测源码

    5. **配置管理**:允许用户自定义检测设置,如检测频率、目标URL、检查的网络条件等。 6. **异常处理**:良好的源码会包含异常处理机制,确保在遇到网络问题或其他异常情况时,程序能稳定运行并记录错误信息。 7. ...

    url scan

    标题“url scan”指的是URL扫描技术,这在网络安全和网站漏洞检测中扮演着重要角色。URL扫描是通过自动化工具来探测、分析和测试网站URL的行为,以找出潜在的安全漏洞、非法活动或者信息泄露等问题。这一过程有助于...

    基于用户行为的SQL注入攻击检测机制探讨.pdf

    对于防护系统的改进,可以包括将用户访问的URL和参数以及用户的行为特征一起纳入检测范围。这样,即使攻击者试图通过改变SQL注入载荷来避免触发规则,其异常的行为模式也将被识别出来。 总的来说,基于用户行为分析...

    php中对链接url的处理

    示例中提到了一个名为`url::replace`的函数,它用于修改URL中的参数。虽然在PHP标准库中没有内置这样的函数,但可以通过自定义函数实现类似功能,例如替换URL中的某些参数: ```php function replaceUrlParams($...

    网站死链、无效链接检测工具-检测更全面

    在获取报告后,可以将死链信息导入到FTP客户端,批量删除或修改有问题的URL。此外,对于大型网站,还可以结合使用XML Sitemap来帮助检测,确保每个页面都被正确地检查。 总之,死链和无效链接的检测是网站维护的...

    特征码自动修改工具V2010

    4. **黑白网络.url**:这是一个快捷方式文件,指向一个网站,可能是工具开发者或相关的技术支持论坛,用户可以在遇到问题时寻求帮助或获取更新信息。 使用这款工具时,用户应先阅读说明文件,了解如何导入待修改的...

    笔记本电池检测

    1. **电池状态监测**:实时显示电池的当前容量,这有助于用户了解电池是否在正常工作,或者是否需要更换。此外,它还可以显示电池的充电状态,如正在充电、放电还是已充满。 2. **电池健康度评估**:通过监测电池的...

    C#检测当前用户网络是否连接 源码

    在C#编程中,检测当前用户的网络连接状态是一项常见的任务,尤其对于依赖网络服务的应用程序而言,这至关重要。本文将详细讲解如何使用C#来实现这一功能,以及相关的知识点。 首先,C#提供了多种方法来检查网络连接...

    多功能修改电脑机器码序列号

    标题中的“多功能修改电脑机器码序列号”是指一种技术,允许用户改变计算机的硬件标识,如机器码(也称为系统UUID或硬件指纹)和序列号。这些标识通常由制造商设置,用于唯一识别每台计算机。在某些情况下,比如测试...

Global site tag (gtag.js) - Google Analytics