JSON前缀有什么用途?

3

我知道这是一个愚蠢的问题,但我在谷歌上没有找到预期的答案。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\"}"

我知道这是出于安全考虑。但具体来说它是什么呢?

https://docs.angularjs.org/api/ng/service/$http#security-considerations - Iluvatar
1个回答

5
如果您查看Spring JavaDoc中添加的另一种方法setPrefixJson(boolean), 您就会理解它背后的原因:
指示此视图输出的JSON是否应以")]}', "为前缀。默认值为false。
以这种方式在JSON字符串中添加前缀可用于帮助防止JSON劫持。该前缀使字符串在语法上无效,因此无法被劫持。在解析字符串为JSON之前,应该去掉该前缀。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接