近期项目在使用kw和Fortify工具进行代码漏洞以及安全漏洞的扫描。对于扫描出来的海量漏洞,也确定出首要优先修复资源泄露类问题。不管是kw还是Fortify,其实扫描源码并不能做到绝对的智能。比如,在各种资源的关闭检查中,如果开发者封装了一个单独的方法用来释放资源,kw和Fortify是无法检测出来的,它们依旧会当成漏洞扫描出来。扫描出的漏洞数量非常大。但是也的确是有一部分的资源的确是没有释放的。
对于扫描出来的漏洞,进行整改肯定是有利于代码健壮性以及产品安全性的。但是,一旦漏洞数量庞大,需要开发者在短期内修复大量扫描漏洞的时候,不可避免的就会发生问题。
举一个由于修改资源释放漏洞而造成的更严重的问题。
比如,如下这段代码:
public void bind(SocketAddress address, IoHandler handler,IoFilterChain filterChain, String sessionClassName)
throws IOException {
ServerSocketChannel ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ssc.socket().setReuseAddress(true);
ssc.socket().bind(address);
BindInfo info = new BindInfo(address, handler, filterChain, sessionC
对于扫描出来的漏洞,进行整改肯定是有利于代码健壮性以及产品安全性的。但是,一旦漏洞数量庞大,需要开发者在短期内修复大量扫描漏洞的时候,不可避免的就会发生问题。
举一个由于修改资源释放漏洞而造成的更严重的问题。
比如,如下这段代码:
public void bind(SocketAddress address, IoHandler handler,IoFilterChain filterChain, String sessionClassName)
throws IOException {
ServerSocketChannel ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ssc.socket().setReuseAddress(true);
ssc.socket().bind(address);
BindInfo info = new BindInfo(address, handler, filterChain, sessionC