Discuz!开发之附件动态链接生成与解析
2017-04-12 15:19
891 查看
熟悉discuz!的朋友应该知道,discuz!的附件在前台显示的都是动态的下载链接,例如:
http://localhost/forum.php?mod=attachment&aid=MTc2NTF8OTVkOTMyODB8MTQ5MTk4MDg1MHwxfDMyMQ%3D%3D
从上面我们看到,参数aid并不是附件表中的aid,难道此次有加密?
我们来研究一下这个aid参数的生成方法:
\source\function\function_core.php
\source\module\forum\forum_attachment.php
http://localhost/forum.php?mod=attachment&aid=MTc2NTF8OTVkOTMyODB8MTQ5MTk4MDg1MHwxfDMyMQ%3D%3D
从上面我们看到,参数aid并不是附件表中的aid,难道此次有加密?
我们来研究一下这个aid参数的生成方法:
\source\function\function_core.php
function aidencode($aid, $type = 0, $tid = 0) { global $_G; $s = !$type ? $aid.'|'.substr(md5($aid.md5($_G['config']['security']['authkey']).TIMESTAMP.$_G['uid']), 0, 8).'|'.TIMESTAMP.'|'.$_G['uid'].'|'.$tid : $aid.'|'.md5($aid.md5($_G['config']['security']['authkey']).TIMESTAMP).'|'.TIMESTAMP; return rawurlencode(base64_encode($s)); }上面链接中的aid参数就是把该附件的aid、论坛安全码、时间、我的ID号、主题ID等信息字符串拼接之后使用了base64加密而来,因此我们的就很容易解析这个aid参数,可参考:
\source\module\forum\forum_attachment.php
@list($_GET['aid'], $_GET['k'], $_GET['t'], $_GET['uid'], $_GET['tableid']) = daddslashes(explode('|', base64_decode($_GET['aid'])));
相关文章推荐
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
- 【转载整理】eclipse 开发c/c++、Java使用JNI调用C程序、生成64位dll动态链接库
- VC调用MatLab生成的动态链接库
- 生成ACE: Win32下生成支持MFC的动态链接库
- Intel平台下linux中ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载
- Web开发学习笔记之一:如何配置IIS使其能运行ISAPI动态链接库程序?
- (转)如何让一个动态链接库文件debug和release编译的时候生成不同的文件名
- Intel平台下Linux中 ELF文件动态链接的加载、解析及实例分析(一): 加载
- 用SAXReader解析xml文档本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2009/1217/18796.php
- Java 调用其他开发语言开发的动态链接库文件(一)
- 在PB中调用其它语言开发的DLL动态链接库
- 移动项目开发笔记(动态生成xml文件生成导航菜单(续))
- Intel平台下Linux中 ELF文件动态链接的加载、解析及实例分析(一): 加载
- Linux中ELF文件动态链接的加载、解析及实例分析(一): 加载
- 动态链接时要生成DLL和lib时,要导出函数
- 使用c++开发excel插件 (3.4、编写一个简单的动态链接库)
- 使用displaytag动态生成链接
- 动态链接库的开发 DLL
- 从Java应用程序动态生成PDF文件-Java基础-Java-编程开发
- Intel平台下Linux中ELF文件动态链接的加载、解析及实例分析