代码工匠

Walking The Long Road.

Struts2一个[安全问题]的分析报告

一:起因

最近公司代码被扫出有一个xss漏洞,检查之后,发现大致是这样一个页面:

DemoAction
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class DemoAction extends ActionSupport {

    private int id;

        @Override
        public String execute() throws Exception {
                return "success";
        }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

小轮子一枚-高仿express的Java服务器

之前做了个Java项目MockSocks,要做UI,用Swing写实在是又low又费劲,跟前端同事聊起node-webkit,觉得很不错。但是我大部分业务都在Java上,于是就涉及到Java与js通信问题。

当然最常用的解决方案就是用Java写一个Web后端。但是这样解决太重,大部分时间都要花费在web的配置上,最终还要使用一个容器去启动它,程序流程也无法由我来控制了。

其实挺喜欢JMX的控制方式,只是用其他语言连接它成本有点高。于是就想仿照JMX的方式写一个Web Server,同时可嵌入到应用中。直接使用Jetty又太原生态了,URL路由/参数映射和转换总是要做的,于是参考了express的语法,就有了一个非常小的Web框架express.java

WebMagic-Avalon计划启动

一直以来都有个想法,想要将爬虫做到可配置化,同时可复用这些配置。然后将这些配置做成可复用,可分享,可搜索的,这样就不会经常有一堆人重复劳动了!

双11的时候启动这个项目,希望解放苦逼的程序员,以后多点时间去谈恋爱,陪家人!

无责任励志一则-成功就是把你做的事做精致

我们常说,这个世界太浮躁。实际上也是如此,今年小孩出生,同时又买了房子,生活上的压力顿时压下来,差点趴下了。但是我是个老实人,急躁又有什么用呢,还不是每天上班下班,下班看书写代码,没有那个业余找钱的能力,于是也就算了,安心搞点好玩的。

Qcon见闻

第一天

之前在并发编程网http://ifeve.com发过两篇关于netty的文章,就混进了编辑群,正好群主有两张Qcon上海的票,我又刚好在上海,就拿了一张票,请了天假,奔赴现场了。

MockSocks开发日志之三-为NIO设置Socks代理

回顾

时隔3个月,MockSocks终于又能继续开发了。这个项目是目前为止做过的最有技术挑战的一个,目标是做成一个后端应用的fiddler,可以监控应用对外的网络流量、分析协议、重定向、并针对每个协议进行修改,同时可以录制和回放。项目也得到了部门总监和其他leader的肯定,可以多花心思弄弄好。

因为项目的核心是一个Socks代理,通过这个代理捕获双方的流量,并进行后续的操作。

今天把mou整崩溃了

一直觉得Mou写markdown,小巧灵活,久而久之也喜欢把一些临时文本放在里面。

结果晚上回来的时候打不开了,内存飙到1.6G,CPU跑到200%多,死活打不开。作为markdown重度患者,简直要崩溃了。

怀疑是打开了非法的文件导致。删了App重新装,问题依旧,不知道是把临时文件存在哪的。用进程管理器找到打开的文件,将疑似缓存的文件都删了(~/Library下面几个),依然没有用!

后来都要绝望的时候,竟然蹦出来了,原来是之前随便贴了一些数据,估计是有markdown的保留字,导致Mou解析出错了!下次还是不要乱拷数据到Mou里了吧!

体验到了open-source的魅力

webmagic从第一个正式版本到现在大概有一个月了,这一个月一直在提交代码,Longest Streak已经达到了25天,打破了开发blackhole时15天的记录了。webmagic确实是我最得意的一个项目,结合了领域经验和编码功底,包括注释和编码都是精雕细琢的。