XSS过滤器修改内容

时间:2018-01-23 09:05:32

标签: asp.net json xss microsoft-edge

我有asp.net WEB API我在一个操作中将json字符串放在url参数中,例如:

http://example.com?config=%7B%0D%0A%20%20%20%20%22paramete1%22%3A%22value1%22%2C%0D%0A%20%20%20%20%22serverulr%22%3A%22http%2F%2Fexample.com%22%0D%0A%7D

其中config参数包含编码的json:

{
    "paramete1":"value1",
    "serverulr":"http//example.com"
} 

一切都适用于所有浏览器,我只有Microsoft Edge和Internet Explorer的问题。在控制台中,它向我显示:

SEC7130: Potential cross-site scripting detected in 'http://example.com?config=%7B%0D%0A%20%20%20%20%22paramete1%22%3A%22value1%22%2C%0D%0A%20%20%20%20%22serverulr%22%3A%22http%2F%2Fexample.com%22%0D%0A%7D'. The content has been modified by the XSS Filter. 

之后我的json看起来如下:

{
    "paramete1":"value1",
    "serverulr":"http//example^com"
} 

有任何想法如何避免这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为没有办法避免这种情况。 首先是添加自定义标头并将此配置放入此标头,但随后我面临其他问题,因为在相同的情况下,此网址必须在iframe中使用。 所以我决定将这个值编码为base64,它运行正常。