因此,如果有人发送此接受标头:
*/*'"!@$^*\/:;.,?{}[]`~-_<sCrIpT>alert(81363)</sCrIpT>
使用Jersey在响应中返回。我需要拦截它并逃脱它。我还没有找到任何办法。有什么帮助吗?
答案 0 :(得分:1)
您可以使用过滤器拦截您的请求,并在到达您的服务类之前进行清理。请检查此example。
答案 1 :(得分:0)
您可以读取请求标头,并以这种方式修改响应标头(您无法修改请求标头,它是只读地图):
@Context HttpHeaders headers;
@Path("yourPath")
public Response yourMethod(){
List<String> accept = headers.getRequestHeader(HttpHeaders.ACCEPT);
if ( accept contains invalid characters)) {
do something
}
//If you set a null value, the header is deleted.
//Anyway, deletion is useless, if you have not yet set
// the Accept header on the response.
return Response.ok().header(HttpHeaders.ACCEPT, null).build();
}