在Jersey Jackson中转义单引号URL查询参数

问题描述 投票:0回答:1

说来话长,我需要保护一些遗留代码,防止SQL注入。预备语句不是一个选项。

API都是先由Jersey处理,JSON对象反序列化是Jackon。

所以,我想做的一件事是逃避所有出现的 '. 因此,当杰克逊球衣从API反序列化查询参数时,无论何时,它都会看到一个。' 它将用一个 '' 这可能吗?

jackson jersey escaping
1个回答
1
投票

你有没有试过使用自定义字符串反序列器?

public class CustomStringDeserializer extends StdScalarDeserializer<String> {
    protected CustomStringDeserializer() {
        super(String.class);
    }

    @Override
    public String deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException {
        String originalValue = parser.getValueAsString();
        String escapedValue = null;
        if (originalValue != null) {
            escapedValue = originalValue.replace("'", "''");
        }
        return escapedValue;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.