关于Fortify 代码安全扫描常见问题

#Often MisusedFile Upload

问题说明:

jsptype=file的输入框需要进行文件安全性校验

解决方案:

jsp页面中没有很好的检验方式,所以检验在后台校验,采用文件后缀名+文件头信息来判断文件类型。文件头信息验证可参考:http://blog.csdn.net/honwellhsueh/article/details/12913591


#Unreleased  ResourceSockets

问题说明:

没有正确释放资源

解决方案:

涉及到Connection 相关操作,使用完毕后要正确释放资源。


#Mass AssigmentInsecure Binder Configuration

问题说明:

不安全的参数绑定配置,是指我们的controller中xxxMethod(User user) 未明确指定接口所需属性,而是把整个对象所有属性暴露出去。

解决方案:

接口中入参对象未明确指定接口所需属性,而是把整个对象所有属性暴露出去。接口入参如果是某个具体对象需要使用@RequestBody标签,不需要的属性可用@JsonIgnore注解,前端接口调用时需使用标准json格式传递参数。方案参考:https://stackoverflow.com/questions/46840174/what-is-the-solution-for-mass-assignment-insecure-binder-configuration-vulnerab



#Insecure Randomness

问题说明:

不安全的随机数,一般出现在js中使用到Math.random()

解决方案:

如果基于插件封装的js不利于修改,要么更换插件,要么看下有没有更高版本的进行,实在不行只能找相关安全测试工程师是否可以不修改。-0 0


#Log Forging

问题说明:

伪造日志,指我们在用httpclient 或者restTemplate调用第三方接口时,习惯性的把response的信息直接就log.info(response.getXXX) ,可能会发生返回信息中会存在字符串“twenty-one%0a%0aINFO:+User+logged+out%3dbadguy”,则日志中
就会记录以下条目:
INFO:Failed to parse val=twenty-one
INFO:User logged out=badguy

解决方案:

对于接口回调函数返回信息需要记录到日志中时,先进行信息的解码,发生错误时自定义错误提示信息.具体参考:http://blog.csdn.net/acmman/article/details/62446022








你可能感兴趣的:(javaWeb应用安全问题)