解决数据库存储来自Checkmarx的XSS问题

时间:2018-03-05 14:36:47

标签: java spring jdbctemplate checkmarx

我在List<Data> dataList = jdbcTemplate.query位置收到错误。

Checkmarx说:

  

AppServices / SRC /主/ JAVA / COM /姆布萨/应用程序/刀/ IMPL / AppRequestDAOImpl.java   从数据库获取查询元素的数据。这个元素   然后,值会在没有经过适当过滤的情况下流经代码   编码并最终在方法中显示给用户   getRequestDetail在第117行   AppWeb / SRC /主/ JAVA / COM /姆布萨/应用/控制器/ AppRequestController.java。   这可能会启用存储的跨站点脚本攻击。

List<Data> dataList = jdbcTemplate.query(new PreparedStatementCreator() {

                @Override
                public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
                    PreparedStatement pstmt = conn.prepareStatement(fSQL);
                    int index = 1;
                    for(Object param: effParams) {
                        pstmt.setString(index, (String) param);
                        index++;
                    }
                    return pstmt;
                }
            }, new RequestMapper());

public class RequestMapper implements RowMapper<Data> {

    @Override
    public Data mapRow(ResultSet rs, int rowNum) throws SQLException {
        Data data = new Data();
        data.setName(rs.getString("name"));
        return data ;
    }


}

我在此处添加了PreparedStatement来解决此问题,并尝试在输出数据上添加HtmlUtil.htmlEscape,但仍然无法解决此问题。

任何人都可以帮忙解决这个问题吗?

0 个答案:

没有答案