【问题标题】:Escape single quote URL query parameter in Jersey / Jackson在 Jersey / Jackson 中转义单引号 URL 查询参数
【发布时间】:2020-05-28 18:37:41
【问题描述】:

说来话长,我需要保护一些遗留代码免受 SQL 注入。准备好的陈述不是一种选择。

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

所以,我想做的一件事是避开所有出现的'。所以当 Jackson/Jersey 从 API 反序列化查询参数时,只要看到',它就会用'' 替换它。这可能吗?

【问题讨论】:

    标签: jackson jersey escaping


    【解决方案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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多