我們使用Spring及其內置的MappingJacksonHttpMessageConverter生成大量的JSON對象。非常棒。How to html escape values by Jackson generator
但是現在我想要html轉義我的(任何一種)對象的字符串值爲了防止XSS。
那麼,我該如何解決這個問題?我首先想到我可以編寫一個自定義對象映射器並將它放入MappkingJacksonHttpMessageConverter。但是,writeValue需要一個對象,我不希望這樣,我想讓其字段迭代。我敢打賭,傑克遜轉換器也需要這樣做。所以我想影響那部分。
現在我結束了一個SerializerProvider接口。標準實現(StdSerializerProvider)被ObjectMapper調用。因此,我想覆蓋/影響負責設置值的方法。
這可能嗎?據我所知,這很難延續。我無法重寫StdSerializerProvider以覆蓋ObjectMapper使用的方法。也許我需要重寫另一個?
或者,這可能是完全錯誤的,我需要從完全不同的角度來看待它?
有什麼想法?
哦順便說一句,自己實現SerializerProvider並創建委託給StdSerializerProvider的組合可能是可能的,但我寧願不要。 (我自己已經有問題實例化StdSerializerProvider)。
任何想法感謝!
I已經創建了關於此的博客文章:http://stefanhendriks.wordpress.com/2011/02/16/prevent-cross-site-scripting-when-using-json-objects-using-esapi-and-jackson-framework- 1-7-x/ – 2011-02-16 15:02:25