用户的JSON前缀是什么?

时间:2016-12-11 02:45:43

标签: java json spring spring-mvc

我知道这是一个愚蠢的问题,但我没有找到谷歌的预期答案。 Spring MVC 4.3的一个新功能是支持配置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\":\"ABC@gmail.com\"}"

我知道这是出于安全目的。但具体是什么呢?

1 个答案:

答案 0 :(得分:3)

如果您查看添加setPrefixJson(boolean) in the Spring JavaDoc的其他方法,您将了解其背后的原因:

  

指示此视图的JSON输出是否应以&#34;)]}&#39;,&#34;为前缀。默认为false。

     

以这种方式对JSON字符串进行前缀用于帮助防止JSON   劫持。前缀使字符串在语法上无效为a   脚本使其无法被劫持。应该删除此前缀   在将字符串解析为JSON之前。

相关问题