powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring4, xss filter для ajax json запросов
1 сообщений из 1, страница 1 из 1
spring4, xss filter для ajax json запросов
    #39081244
breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеется spring4, jackson lib задача сделать фильтр xss для всего приложения,
для обычных http запросов это решается стандартным фильтром

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@WebFilter(filterName = "XSSFilter", urlPatterns = {"/*"})
public class XSSFilter implements Filter {
...
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        chain.doFilter(new XSSRequestWrapper((HttpServletRequest)request), response);
    }
}


проходим по реквесту и очищяем вредные символы

как подобное сделать для json xmlHttpRequest (ajax) ?

по сути нужно пройтись по json и удалить из значений все ненужное,
нашел вариант где подобное делается с кустомным сериализатором

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@Configuration
public class AppWebMvcSupport extends WebMvcConfigurationSupport {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(converter());
        addDefaultHttpMessageConverters(converters);
    }

    @Bean
    public MappingJackson2HttpMessageConverter converter() {
        MappingJackson2HttpMessageConverter ret = new MappingJackson2HttpMessageConverter();
        ret.setObjectMapper(new CustomObjectMapper());
        return ret;
    }
}




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
public class CustomObjectMapper extends ObjectMapper {

    public CustomObjectMapper() {
        SimpleModule module = new SimpleModule("xss serializer");
        System.out.println("+++ ");
        //module.addSerializer(new JsonXSSSerializer());
        module.addSerializer(String.class, new JsonXSSSerializer());
        registerModule(module);
        //setSerializationInclusion(JsonInclude.Include.NON_NULL);
    }
}
class JsonXSSSerializer extends JsonSerializer<String> {

    @Override
    public void serialize(String s, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        if(null != s) {
            String val = encodeHtml(s);
            jsonGenerator.writeString(val);
        }
    }

    private String encodeHtml(String s) {
        //clean xss
        System.out.println("!!! " + s);
        return s;
    }

}



при использовании
Код: java
1.
module.addSerializer(new JsonXSSSerializer());


при деплое приложения была ошибка Serializer does not define valid handledType()

тут http://stackoverflow.com/questions/7161638/how-do-i-use-a-custom-serializer-with-jackson
нашел другую сигнатуру вызова
Код: java
1.
module.addSerializer(String.class, new JsonXSSSerializer());



теперь деплоиться нормально, но все линки битые с ошибкой

No mapping found for HTTP request with URI [/static/css/jquery-ui-1.11.0.min.css] in DispatcherServlet with name 'dispatcher'
и тд..

как данную задачу решить ?

p.s
в данный момент использую все классы для сериализации из неймспейса
Код: java
1.
com.fasterxml.jackson.*


и тд..

так же есть более старый вариант с
Код: java
1.
org.codehaus.jackson.*

тоже не работает
https://stefanhendriks.wordpress.com/tag/objectmapper

спасибо
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / spring4, xss filter для ajax json запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]