PHP简单解析Javascript对象

Javascript数据对象和JSON不同,“key”不带有双引号,如:[{id:0,name:”了望天涯”,url:”/publicforum/ArticlesList/0/lookout.shtml”},{id:1,name:”天涯主版”,children:[{⋯⋯

在PHP中直接用json_decode是无法解析的。

在逆向发布的过程中往往遇到网页上有这种Javascript对象需要解析,我的简单解析方法分享给大家。 Continue reading

实现简单的文件签名下载验证服务(Nginx)

在WEB架构中经常会遇到私密文件下载服务,比如网盘、OA、邮箱等等。但是大文件用动态语言来验证权限并输出是非常消耗性能的事情。今天用Nginx+PHP实现了简单的文件签名下载服务(感谢同事Toad的辛苦调试)。
原理就是业务给用户的下载地址是真实文件的下载地址加上授权签名(Signature),当用户的下载请求到服务器时,用PHP验证签名的有效性和权限,并输出是否可以下载的HTTP头。如果可以下载,剩下的事情就是Nginx和浏览器或下载软件之间的事情了。下载效率和纯静态文件相同。 Continue reading

分享一个格式化wireshark导出数据的PHP代码

用过wireshark的兄弟都知道,需要导出的数据如果不全是asc,如果用raw格式导出会有一串“.”在内容里,那些都是不可见字符;如果用Hex Dump方式导出,实际上是Hex视图 的字符串模式,而不是原始的数据。
我也是久经折磨,实在忍不下去,写一个格式化转码工具,将Hex Dump方式导出的文件格式化为原始的请求数据和接受数据。 Continue reading

16进制转换为64进制,压缩md5值的存储

工作中发现我们平时吧加密密码、授权证书、文件指纹等等进行存储和使用的时候大部分是直接使用的md5值,md5值是一个32位长16进制整数,其实我们可以吧这个16进制数转换成64进制,实现同样的功能,缩短字符串长度(32位的16进制MD5值可以压缩为22位的64进制数)。至于缩短长度有啥用处,我想你懂得O(∩_∩)O~ Continue reading

PHP性能检测扩展——XHProf

XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销。原始数据收集部分是用纯C实现的,是一个名叫xhprof的 Zend扩展 。
XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次 数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递 归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。 XHProf的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。 Continue reading

发布HTTPool v0.1

HTTPool是XMLHTTP封装类,除了异步交互数据外增加了进程池的功能,进程池中存放着正在数据交互的进程,等待交互的进程,交互完毕的进程。 HTTPool的进程池初始是空的,有交互请求时,会检查池中是否有已交互完毕的进程,如果没有将会创建新的进程,并进入进程池。
交互完毕,HTTPool会调用进程的回调函数,进程变为交互完毕状态,可以被以后的交互请求所使用。
如果请求交互时进程池中活跃进程已达到最大值,会进入等待队列,一旦有进程交互完成或超时取消,将会启动最早进入等待队列的进程。
HTTPool会实时检查正在交互的进程数目,如果有进程超时,将会中止进程的交互操作,进入交互完毕状态,可以被以后的交互请求使用。 Continue reading

在Mysql Workbench 上进行可视化的Mysql设计

MySQL Workbench 是Mysql AB最近发布的可视化数据库设计工具,这是专门为Mysql数据库而设计的。
MySQL Workbench 有许多功能和特性; Djoni Darmawikarta 的这篇文章将通过例子讲述部分功能和特性。我们将建立一个物理数据模型为一个订单系统(销售订单或采购订单)。然后使用正向引擎(forward-engineer)将模型生成Mysql数据库。 Continue reading