`
chinagdvea
  • 浏览: 126463 次
  • 性别: 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


分享到:
评论

相关推荐

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    IIS可以忽略对链接的虚拟目录是否存在的检测,但是,却无法检测非ASP.NET支持的文件扩展名的链接(我们固然可以在IIS中将所有类型的扩展名都映射到ASP.NET解析器,但是,如果我们有设置IIS的权限,为什么还要用性能...

    Kotlin 开发的安卓音乐软件,使用了网易云音乐 API

    检测手机号码是否已注册 初始化昵称 更换绑定手机 退出登录 登录状态 获取账号信息 获取用户信息 , 歌单,收藏,mv, dj 数量 获取用户等级信息 获取用户绑定信息 用户绑定手机 更新用户信息 更新头像 ...

    ThinkOX 内容管理 v1.5.0 正式版.zip

    修改:图片附件url修改。 修改:表情包修改、聊天添加表情 修改:群组修改 改进:模块安装改进 改进:微调样式 改进:加入行为日志清理提醒 改进:增加前台权限节点的编辑功能 新增功能:批量转移用户组功能 ...

    侦查兵:可能是东半球最灵活的URL监控系统

    活跃时间外不检测支持异常容忍次数,连续异常次数在此之下的不预定可配置从异常状态中恢复时是否通知到接受组正确通过HTTP传输数据,可自由配置接受正确的URL支持Apdex用户界面(就是好看又好用)写测试用例时,...

    asp.NET权限管理系统(FrameWork) 1.0.7源码

    11.修改在线用户处理类,无法正常清除到期用户. 12.修改出错时,只针对manager目录跳转 13.修正ManagementClass无权限读取错误 14在Firefox下选择部门后,清除再选择部门,文本框为空, 树菜单在forefox下打开和关闭...

    WSTMall 开源多用户商城系统 v1.9.5.zip

    URL重写技术:WSTMall 继承了thinkphp的URL重写技术,支持普通模式、PATHINFO模式、REWRITE模式和兼容模式的URL方式,支持不同的服务器和运行模式的部署,配合URL路由功能,使搜索引擎更容易方便地收录网页。...

    ASP.NET权限管理系统

    11.修改在线用户处理类,无法正常清除到期用户. 12.修改出错时,只针对manager目录跳转 13.修正ManagementClass无权限读取错误 14在Firefox下选择部门后,清除再选择部门,文本框为空, 树菜单在forefox下打开和关闭...

    ASP.NET权限管理系统(FrameWork)

    11.修改在线用户处理类,无法正常清除到期用户. 12.修改出错时,只针对manager目录跳转 13.修正ManagementClass无权限读取错误 14在Firefox下选择部门后,清除再选择部门,文本框为空, 树菜单在forefox下打开和关闭...

    Xray-web漏洞扫描工具.zip

    如果一个漏洞能用回显检测就用回显检测,因为盲打平台增加了漏洞检测过程的不确定性和复杂性。 耗时操作谨慎处理 全局使用 Context 做管理,不会因为某个请求而导致全局卡死。 简易架构 了解 xray 的整体...

    yii2-localeurls:URL的自动本地语言管理

    Yii2语言环境URL 通过Yii 2的URL自动进行语言环境/语言管理。 重要信息:如果从版本1.0。... 为了获得最佳的用户体验,如果URL中未使用任何语言,则会从浏览器设置中自动检测该语言。 但是,用户仍然可以通过

    媲美尖叫蛙的网站链接检查工具 —seo优化必备神器!!!

    如果您选中“显示选项”功能,它将显示一些方法,这些方法可以在您进行网站检查时进一步为用户提供帮助,大家可以修改“连接超时”、“响应超时”、“浏览器代理”、“忽略扩展名”以及“忽略URL”,等相关设置,...

    梦想互动社区 Ver4.0 For Dvbbs7.1 美化修改版

    自动更新用户等级的修复 完善系统检测信息 增强帖子中附件文件格式识别能力 只有管理组成员才可以看到管理菜单 删除帖子默认删除帖中含有的附件 把VIP用户操作和我的收件箱分开 后台上传...

    FlashGet 3.0 beta2

    7.修改在网页中的URL文字无法拖拽到悬浮窗和主窗体的BUG 8.修改新建任务对话框,点击“浏览”按钮后,默认选中输入框中路径而不是默认路径 9.修改Vista下主菜单处显示为黑色的BUG 10.修改每次启动快车窗口会比上次...

    ASP.NET通用权限管理系统(FrameWork) 1.0.8源码版

    FrameWork权限管理 v1.0.8源码 源码描述: 其主要的功能就是,进行后台管理模块整合. 1)其可以支持多个应用,多个模块的...14.用户资料管理员,管理员只能管理自己部门下的用户(修改/删除) 15.后台增加禁止登陆ip限制.

    权限管理 v1.0.8源码20130428

    权限管理 v1.0.8源码 源码描述: 其主要的功能就是,进行后台管理模块整合. 1)其可以支持多个应用,多个模块的权限管理. ...14.用户资料管理员,管理员只能管理自己部门下的用户(修改/删除) 15.后台增加禁止登陆ip限制.

    Asp.Net Forums v2.2.1928 Beta 官方中文版

    修订用户修改密码的缓存时间 22.增加邮件发送队列管理 23.增加大版主角色 24.增加用户昵称搜索 25.对配置项进行分类 26.增加未读主题页 27.增加最新加入主题页 28.增加贴子多附件上传及...

    firVersion:fir 检测版本,并更新提示

    firVersion在使用 fir 的过程中,实现 app 的检测版本号,会提醒 测试人员 更新效果fir 检测版本,并更新提示需要修改的文件firConstans.h// App在数据库中生成的id// 获取方式,pc 点开 app,浏览器 url 中#define ...

    Wincms v5.0

    程序完全符合SEO程序支持动态、伪静态、静态三种模式,URL自定义,关键词,tag互动内链,让你的网站免费在搜索引擎中获得好的收录与排名。电子商务在线支付产品展示、商品评价咨询、促销价格,在线下单付款,订单状态...

    Wincms v5.0.zip

    程序支持动态、伪静态、静态三种模式,URL自定义,关键词,tag互动内链,让你的网站免费在搜索引擎中获得好的收录与排名。   电子商务在线支付 产品展示、商品评价咨询、促销价格,在线下单付款,订单状态管理,...

    秋亿网络文件管理

     2、修改URL字符为URLEncode编码,避免了某些文件名字符对文件操作失败;  3、改进密码在客户端加密一次;  4、其它一些小的改动与完善。 v4.21 更新:  1、修正文件在线打包文件或者目录不存在时的错误;  ...

Global site tag (gtag.js) - Google Analytics