Monthly Archive: 五月 2014

关于如何对付wordpress的垃圾广告机器人

wordpress 是个广为流行的博客系统,也正应为用户之多,随之而来的垃圾广告也越来越多。

曾装过几个反垃圾广告的插件都不怎么理想(包括图片验证码的也无效,设计有漏洞),后来通过日志分析用iptable屏蔽IP段能堵住大部分广告机器人,不过还是要时常填补机器人IP到iptable,操作起来不方便。

机器人是模拟浏览器请求的软件,有伪装的header user-agent,不容易同正常请求区分开来,所以通过这些参数没有有效的屏蔽办法。

机器人软件模拟浏览器请求有个缺陷就是不会执行页面JS脚本。

PHP后台管理源码

后台管理程序由php开发,目前只实现了基本功能:模块管理权限分配

使用codeigniter框架和Smarty模板

页面使用ACE Admin UI模板,为了结合frame做了二次修改

图形报表使用openflashchart,OFC php有不少BUG,我已经做了修复

12306曾经的车站名扰码算法

12306曾经按车站名查询余票,对站名做了编码,估计是防止别人直接使用余票查询功能。

这个算不上加密,不过也确实防止了被民间盗用。

编码是用js实现的,函数名还比较有欺骗性,还好我无意中发现了并翻译了JAVA和Objective-c两个版本

代码没什么难度

JAVA版本

public static String tranCode(String str, String pwd) {
String prand = “”;
for (int i = 0; i < pwd.length(); i++) { prand += ((int) pwd.charAt(i)); }

Linux 下通过命令生成缩略图并按规则重命名

Linux 下可以通过命令方式很方便的批量生成图片缩略图,这里需要用到的一个工具是ImageMagick。

ImageMagick是一个功能强大的图像工具,大多数linux发行版都会默认安装。(手动安装自行google)

缩略图转换命令如下:

convert head.jpg -sample 100×100 “head_100x100.jpg”
这是单个转换,将head.jpg 转换为长宽100×100大小的图片,并且重命名,将尺寸加到文件名中。

注意这里100×100是加在文件名中间位置。

通常的批量转换方式:

for img in `find ./ -name “*.jpg”`
do
convert $img -sample 200×150 “100x100_”$img
done

nodejs web框架搭建 express + handlebars

以前用的django,php+smarty,顺着思路搭建下nodejs web

jade 模板优点缺点都比较突出,适合简洁更个的网页
EJS 和大多数模板风格类似,但是语法难看些。
handlebars 语法上是我比较偏向的,而且它有个express3-handlebars,方便使用模板继承功能(虽然有点弱)
ericf/express3-handlebars · GitHub

模板继承在其他语言模板引擎如smarty,django的默认的都是标配的,便于页面复用是include一个很好的补充

这里就不说详细配置步骤,nodejs 还没有入门的先补习下基础文档