2016-12-11 102 views
1

我知道這是一個愚蠢的問題,但我沒有找到谷歌預期的答案。一個Spring MVC的4.3的新功能是支持配置JSON前綴什麼是JSON前綴用於?

<mvc:message-converters> 
    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
     <property name="jsonPrefix" value=")]}',\n" /> 
    </bean> 
</mvc:message-converters> 

所以JSON輸入/輸出可以關注一下:

)]}',\n"{\"userName\":\"ABC\",\"emailId\":\"[email protected]\"}" 

我知道這是爲安全目的。但具體是什麼呢?

+0

https://docs.angularjs.org/api/ng/service/$http#security-considerations – Iluvatar

回答

3

如果你看一下另一種方法添加setPrefixJson(boolean) in the Spring JavaDoc你就會明白的理由背後:

表示是否通過該視圖中的輸出JSON應該與前綴「)]}」,」。默認爲false。

加前綴以這種方式JSON字符串用來幫助防止JSON 劫持。前綴呈現字符串作爲 腳本,以便它不能被劫持語法無效。在將字符串解析爲JSON之前,應刪除該前綴 。