一个比较低级的PHP代码加密方式技术
在计算机界,只要能被运行的代码,不论怎么加密,怎么混淆,都是一定可以解开的,只是时间成本问题。
想必大家都看过 Java 反编译方面的文章,都见过 IOS 逆向工程这样类似的书籍了吧。说的就是这个道理。
当我见到一个非常傻逼非常低级的 PHP 代码加密方式时,我觉得加密方及他们的公司特别傻逼,还装的那个正式的样子就很傻逼。
截取一段他们加密的方式:
<?php $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=34576;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAwTzBPMDA9JE9PME9PMDAwMCgkT09PME8wTzAwLCdyYicpOyRPTzBPTzAwME89JE9PTzAwMDAwMHsxN30uJE9PTzAwMDAwMHsyMH0uJE9PTzAwMDAwMHs1fS4kT09PMDAwMDAwezl9LiRPT08wMDAwMDB7MTZ9OyRPTzBPTzAwTzA9JE9PTzAwMDAwMHsxNH0uJE9PTzAwMDAwMHswfS4kT09PMDAwMDAwezIwfS4kT09PMDAwMDAwezB9LiRPT08wMDAwMDB7MjB9OyRPTzBPTzAwME8oJE8wMDBPME8wMCwxMjY1KTskT08wME8wME8wPSgkT09PMDAwME8wKCRPTzBPTzAwTzAoJE9PME9PMDAwTygkTzAwME8wTzAwLDM4MCksJ0VudGVyeW91d2toUkhZS05XT1VUQWFCYkNjRGRGZkdnSWlKakxsTW1QcFFxU3NWdlh4WnowMTIzNDU2Nzg5Ky89JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;?>
谈谈网站开发中的跳转方式技术
互联网是一个大杂烩,一个系统在公网上运行,随时面临着傻逼程序的进攻,在互联网的大家庭里,鱼龙混杂,技术水平参差不齐,特别是各种傻逼爬虫。这也是我写这篇文章的原因。
本文主要讲解如何更好的在网站开发中使用跳转。
当我在我的统计日志中发现大量的重定向之后,我觉得这些爬虫怎么可以这么傻逼,请看下面的日志,我截取的是比较短的一个记录,事实上最长的记录已经达到了 GET 请求的最大限制:
"GET //mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com//mall.dbsqp.com/manager/html HTTP/1.1" 301 432
解决GIT本地的远程分支删不掉的问题技术
分享一个 GIT 使用实际遇到的问题。
问题描述,使用 git branch -av 查看分支,可以看到 origin/ 下面有某个分支,使用 git branch -d 或者 git branch -D 删除提示分支不存在。
本地远程分支删不掉的原因,系远程分支已经被其他终端删除,本地更新后 packed-refs 已经被删除,导致 git branch -d 报找不到分支的错误,需要手动清理 .git/refs/remotes/origin/branch_name。
如下示例:
$ cat .git/packed-refs # pack-refs with: peeled 6d12bad321cbe20e4d32782e2dd217c05cf3daed refs/remotes/origin/master 3f59a50abc9cbd4cf9590f8dc9617ef42dbf3f20 refs/remotes/origin/dev $ git branch -av * dev 95109a3 ... fix-20161101 fe57263 ... master 2cd49d9 Merge branch 'dev' remotes/origin/HEAD -> origin/master remotes/origin/dev 95109a3 新增定时脚本 remotes/origin/feature-20161101 95109a3 新增定时脚本 remotes/origin/master 2cd49d9 Merge branch 'dev' remotes/origin/rhett b0bcd11 ... $ ls .git/branches total 8.0K drwxrwxr-x. 2 www www 4.0K Aug 22 11:31 . drwxrwxr-x. 8 www www 4.0K Nov 1 13:22 .. $ ls .git/packed-refs -rw-rw-r--. 1 www www 159 Aug 22 11:31 .git/packed-refs $ ls .git/refs/remotes/origin/ total 28K drwxrwxr-x. 2 www www 4.0K Nov 1 13:23 . drwxrwxr-x. 3 www www 4.0K Aug 22 11:31 .. -rw-rw-r--. 1 root root 41 Oct 31 16:50 dev -rw-rw-r--. 1 root root 41 Nov 1 10:00 feature-20161101 -rw-rw-r--. 1 www www 32 Aug 22 11:31 HEAD -rw-rw-r--. 1 root root 41 Sep 26 10:07 master -rw-rw-r--. 1 root root 41 Oct 28 13:42 rhett $ ls .git/refs/remotes/origin/ total 28K drwxrwxr-x. 2 www www 4.0K Nov 1 13:23 .
花生WIFI天猫百度图片加载失败问题技术
在上海挤地铁上班的人应该会经常连接花生WIFI,也许会发现一个问题,有些网站的图片加载不了,比如天猫,百度,一点资讯什么的。这个问题我一开始也觉得很奇怪,时间一长,就想了解到底是什么原因。
我开始求证,在电脑上调试天猫移动站点的图片,发现百度和天猫的图片在移动 UA 下使用的是 webp 后缀文件名,天猫的图片文件名里面含有感叹号逗号等一些非常规字符。webp 是谷歌研发的有损图片压缩格式,率先在 chrome 下得以支持,以 chrome 百分之十的市场份额以及谷歌的影响力,webp 算是在移动设备下都支持了,PC 下目前 Firefox 是不支持的。
想到几点可能性,其一,文件名不符合规范导致,但百度的图片路径一直中规中矩,怎么不能加载呢?而后面的结论也证明了不是这个问题;其二,花生 WIFI 的代理服务器不支持 webp 图片格式?这个倒是有点可能性;其三,被花生 WIFI 屏蔽了。
使用PHP实现Unicode编码转换为UTF-8编码示例技术
先解释一些概念。Unicode 是 Universal Multiple-Octet Coded Character Set 的简写,简称为UCS。Unicode 是多个八位编组的字符编码集合,它本身只是编码规范,并没有任何实现。目前,大多数 Unicode 编码都是占用两个字节,一共可以编 65536 个字符,全世界所有的语言基本上都在里面了,至少绝大多数中文都编进去了,所以很多 json 编码的中文字符串都是用的四个十六进制的数字表示。
UTF-8 编码是对 Unicode 编码的一个实现,是目前世界上使用最广泛的一个编码,最重要的是它兼容 ASCII 和 ISO-8859-1。UTF-8 是以高位分段来区分字符长度的,是一个可变长的编码,最长可以达到 6 个字节。如下示例: