小编Vit*_*sok的帖子

如何修复Veracode CWE 117(日志输出中和不当)

有一个Spring全局@ExceptionHandler(Exception.class)方法可以记录异常:

@ExceptionHandler(Exception.class)
void handleException(Exception ex) {
    logger.error("Simple error message", ex);
...
Run Code Online (Sandbox Code Playgroud)

Veracode扫描表明此日志记录已经Improper Output Neutralization for Logs建议使用ESAPI记录器.有没有办法在不将记录器更改为ESAPI的情况下修复此漏洞?这是我遇到此问题的代码中唯一的地方,我试图找出如何以最小的更改来修复它.也许ESAPI有一些我没有注意到的方法?

PS当前记录器是slf4j上的Log4j

UPD: 最后我使用了ESAPI记录器.我以为它不会使用我的默认日志服务,但我错了,它只是使用我的slf4j logger接口和适当的配置.

private static final Logger logger = ESAPI.getLogger(MyClass.class);
...
logger.error(null, "Simple error message", ex);
Run Code Online (Sandbox Code Playgroud)

ESAPI具有log4j记录器和记录器工厂的扩展.可以配置在ESAPI.properties中使用的内容.例如:

ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory
Run Code Online (Sandbox Code Playgroud)

java logging spring esapi veracode

9
推荐指数
2
解决办法
1万
查看次数

在JSP中获取cookie

我可以像这样在JSP中获取cookie:

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        //work with cookies
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想知道我是否可以使用jsp:useBean(或其他东西)来获取它?可能是这样的:

<jsp:useBean id="myCookie" class="javax.servlet.http.Cookie" scope="request" beanName="cookieName"/>
...
<div class="${myCookie.value == "true" ? "class1" : "class2"}"></div>
Run Code Online (Sandbox Code Playgroud)

谢谢你的答案!

java cookies jsp

5
推荐指数
1
解决办法
2万
查看次数

在Spring Boot应用程序中将自动装配的对象作为模拟物注入Spock测试

我有一个内部带有私有DAO字段的Spring Boot应用程序和服务。专用DAO属性带有注释@Autowired(没有设置者或构造函数设置,仅带有注释)。我试图为服务编写Spock测试,但是找不到如何将模拟DAO注入@Autowired变量。

class TestService extends Specification {
    DAO dao = Mock(DAO)
    Service service = new Service()

    def "test save"() {
        when:
        service.save('data')

        then:
        1 * dao.save('data')
    }
}

Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

UPD:我正在测试Java代码。

autowired spock spring-boot

2
推荐指数
1
解决办法
5924
查看次数

标签 统计

java ×2

autowired ×1

cookies ×1

esapi ×1

jsp ×1

logging ×1

spock ×1

spring ×1

spring-boot ×1

veracode ×1