百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

一种改进URL保护算法研究(修改url协议关联是病毒吗)

liuian 2025-03-14 18:46 41 浏览

章红琴1,张文盛2

(1.安徽继远软件有限责任公司,安徽 合肥 230088;2.安徽广播电视大学,安徽 合肥 230022) 摘要:针对传统URL保护算法存在暴露实现细节的问题,提出一种采用MD5和AES保护URL的改进算法。首先将原始URL和密钥key1按规定顺序装配,计算MD5检验和,并将检验和嵌入原始URL得到防篡改URL;其次使用密钥key2对防篡改URL执行AES加密得到加密URL;最后对加密URL进行编码,得到受保护URL。解析过程逆向操作,期间验证检验和,丢弃无效请求。在PHP中测试两种保护算法的性能,结果表明改进算法与传统算法相比,生成速度变为原来的2倍,解析速度变为原来的0.8倍。而相比传统算法,改进算法具有保密性特点,能够提高Web应用的安全性。

0引言

URL是Web应用的重要组成部分,不重视URL的保护会造成不良后果。一些Web应用将用户名和密码等敏感信息嵌入URL实现特定功能,而浏览器都有记录访问历史功能,将用户访问的敏感URL记录下来,一旦黑客有机会扫描和分析该记录,就会造成信息泄露[1]。此外在大量的Web应用中,数据库使用自增id作为记录的键值,并在URL的请求参数直接嵌入该键值,生成类似于show.php?id=9的URL,恶意用户据此可推测出数据库实现方式,伪造其他请求参数,例如id=10对数据库进行语义攻击,访问到应该受限的资源[2]。URL保护是对URL进行适当的处理,杜绝此类不良后果,提高Web安全性。

URL保护内容包括结构、编码和算法等多方面,重点是保护算法。在设计URL保护算法时,需要考虑多个因素,包括保护强度、解析效率和编程接口复杂度等。URL保护算法越复杂,保护强度也就越高,而每次访问都需要进行URL解析,相应的开销也就越大,特别对于访问量较大的应用,更是需要慎重设计,要在几个因素之间找到一个平衡点。本文遵从该设计原则,提出一种URL保护算法,在尽量降低解析开销的同时,实现URL的保密性和抗篡改特性。

1相关研究

目前URL保护算法研究主要采用MD5算法[35]。MD5是一种散列算法,能够将任意长的字符串计算成为一个128 bit的值,具有很强的抗碰撞攻击能力[6]。这类URL保护算法的处理过程是:首先将原始URL字符串s1和一个密钥字符串key拼接形成字符串s2;其次计算s2的MD5检验和;最后将检验和嵌入s1成为字符串s3,s3是供用户访问的最终URL。用户访问最终URL时,系统完成验证检验和的工作。其工作原理如图1和图2所示。

传统URL保护算法的核心是密钥key,由于MD5是不可逆算法,想要反推出密钥key,是极其困难的。没有图2传统URL保护算法解析URL过程

密钥key, 想要计算出含攻击意图的s1且能够通过验证,即碰撞攻击,也是极其困难的。因此MD5能够有效保护URL不被篡改,保证用户访问的URL都是合法的。但是这些研究未考虑明文请求参数的信息泄漏问题,还需要完善。本文提出一种URL保护算法,既能防篡改,又能保密,可以大幅提升Web应用安全。

2改进URL保护算法

改进URL保护算法采用MD5和AES共同保护URL。AES是一种对称加密算法,属于分组密码,具有很强的抗分析能力[78]。规定双引号为字符串定界符,双引号之间的字符为字符串内容,“+”为字符串拼接运算符,则改进算法的具体执行过程是:

(1)将请求参数s1和密钥key1按规定顺序装配成字符串s2=key1+s1;

(2)计算s2的MD5检验和v=md5(s2);

(3)将检验和v嵌入s1成为新请求字符串s3="v="+v+"&"+s1;

(4)对s3使用密钥key2执行AES加密得到字符串s4=aes(s3,key2);

(5)对s4使用改进base64编码成为字符串s5=base64_encode_ex(s4),得到最终URL。

(6)解析过程逆向操作,期间验证检验和,丢弃无效请求。

其工作原理如图3、图4所示。

本算法的改进之处在于,在MD5实现防篡改特性基础之上,使用AES加密算法加强信息泄露保护,从而实现保密特性。在算法设计上,做如下几点说明:

(1)虽然AES已经可以很好地保护URL,但是为了强化保护能力,继续保留key1用于MD5计算;

(2)使用AES解密伪造的URL时,可能不会出错,但会得到乱码字符串,对后续步骤的执行造成干扰,为了更好地检测这种攻击,在将检验和嵌入s3时,特意增加"v="标识,便于验证和丢弃无效的请求;

(3)AES加密生成的是二进制字符串,需要用base64编码成为可以传输的字符串。但是base64编码中存在+/字符,不是URL兼容的,本算法采用改进base64 算法,将+/替换为_*。

(4)为了支持AJAX,允许在保护URL后面拼接其他请求参数,但是不允许覆盖保护URL中的参数。

3算法实现

下面给出改进算法的PHP实现。改进算法需要多个参数,将其封装成配置参数对象,结构如下:

$cfg = new stdClass;

$cfg->key1 = 123456;//md5密钥

$cfg->aes= aes128;//aes加密标准

$cfg->key2 = 111111;//aes密钥

$cfg->iv = kl3j42;l4j2;lkj4;

//aes iv值,初始向量

3.1生成算法

//$s1为请求参数串,$cfg为配置参数对象

function createLink($s1, $cfg)

{

$v = md5($cfg->key1 . $s1);//生成检验和

$s2 = v= . $v .& . $s1;

$s3 = openssl_encrypt($s2, $cfg->aes, $cfg->key2, true, $cfg->iv);//加密

$s4=strtr(base64_encode($s3), +/,_*);;

//使用改进base64编码处理

return $s4;

}

3.2解析算法

//$s5为安全URL串,$cfg为配置参数对象

function parseLink($s5, $cfg)

{

$s4 = base64_dencode(strtr($s5,_*,+/));//解码

if($s4 === false) return false;//解码失败

$s3 = openssl_decrypt($s4, $cfg->aes, $cfg->key2, true, $cfg->iv);

if($s3 === false) return false;//解密失败

$i = strpos($s3,&);

if($i === false) return false;//未找到&

$v=substr($s3, 0, $i);

//$i是长度,解析嵌入的检验和

if($i <> 34 || substr($v, 0, 2) <>v=) return false;//长度或标识不符

$v = substr($v, 2);//取检验和

$s1 = substr($s3, $i + 1);//解析s1

$s2 = $cfg->key1 . $s1;

$v2 = md5($s2);//计算检验和

if($v <> $v2) return false;//比较检验和

return $s1;

}

4性能测试

分别测试传统算法和改进算法的性能开销。测试环境硬件为Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz CPU,软件为Windows 2003(x86_32,企业版) + PHP 5.3.13(nts,x86_32)。采用两组s1输入,每次测试3次,取平均值,测试结果如表1所示。

从表1可以看出,改进算法生成时间比传统算法生成时间增加(a2-a1)/a1=2倍左右,改成算法解析时间比传统算法解析时间增加(a4-a2)/a2=0.8倍左右。此外解析时间比生成时间都要长,传统算法解析时间是传统算

法生成时间的(a2-a1)/a1=1.8倍左右,改进算法解析 时间是改进算法生成时间的(a4-a3)/a3=0.7倍左右。还可以分析出当字符串长度从10增加到100时,相应的处理时间增加不到10%,说明字符串长度增加对算法性能的影响不是很大。

5结论

保护URL能提高Web应用的安全性,传统URL保护算法存在信息泄漏问题,为此本文设计了一种改进URL保护算法,既能防篡改,又能防止信息泄漏,能够全面保护URL。在给出实现代码的同时,测试了两种算法的性能,结果表明改进算法性能并没有大幅下降,可以满足大多数Web应用的需求。

参考文献

[1] 朱小龙,孙国梓.浏览器历史痕迹提取技术[J].信息网络安全,2013(1):19-21.

[2] 熊婧.SQL注入检测技术研究[D].武汉:华中科技大学,2009.

[3] 杜恩宽.URL攻击防范和细粒度权限管理的安全链接方法[J].计算机应用,2009, 29(8):2230-2232.

[4] 刘国卿.基于MD5 的URL 防篡改算法设计[J].科技信息,2011(3):504505,536.

[5] 张杰,李华伟,周立军.一种采用MD5加密算法防止URL攻击的方法[J].现代计算机, 2014(4):52-54.

[6] 毛熠,陈娜.MD5算法的研究与改进[J].计算机工程,2012,38(24):111-114,118.

[7] 赵雪梅.AES加密算法的实现及应用[J].常熟理工学院学报,2010,24(2):105-110.

[8] 杨斐,彭鹏.基于AES的可重构加密系统的FPGA设计[J].微型机与应用,2014,33(24):2-4.

相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...