gpt4 book ai didi

java - 使用 JAX-RS (RESTEasy) 解决 AngularJS JSON 漏洞

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:10:22 25 4
gpt4 key购买 nike

我正在尝试实现 Angular Docs for $http 中描述的解决方法在 JSON 漏洞保护下。解决方法是让服务器在每个 JSON 请求前加上字符串“)]}',\n”。

我的服务器是运行 RESTEasy 网络服务的 JBoss。我曾尝试使用 JAX-RS 过滤器和拦截器来实现解决方法,但无济于事。

是否有可能在不修改所有 POJO 的情况下为来自 RESTEasy 的每个 JSON 响应添加前缀?

最佳答案

您可以实现自定义 MessageBodyWriter并自行序列化您的 POJO。

@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JsonVulnerabilityWriter implements MessageBodyWriter<Object> {

@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return true;
}

@Override
public long getSize(Object t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return -1;
}

@Override
public void writeTo(Object obj, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType,
MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
entityStream.write(")]}',\n".getBytes("UTF-8"));
entityStream.write(new ObjectMapper().writeValueAsBytes(obj));
}

}

关于java - 使用 JAX-RS (RESTEasy) 解决 AngularJS JSON 漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23549467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com