0

因此,如果有人发送此接受标头:

*/*'"!@$^*\/:;.,?{}[]`~-_<sCrIpT>alert(81363)</sCrIpT>

它使用 Jersey 在响应中返回。我需要拦截并逃脱它。我还没有找到任何方法来做到这一点。有什么帮助吗?

4

2 回答 2

1

您可以使用过滤器拦截您的请求并在它们到达您的服务类之前进行清理。检查这个例子

于 2012-09-29T17:56:40.267 回答
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();
}
于 2012-09-28T21:41:11.303 回答