Fortify认为我有一个XSS问题

时间:2014-10-30 18:56:02

标签: boolean xss fortify

Fortify告诉我,我有一个关键问题是XSS漏洞。

  

摘要:   跨站点脚本:反映(输入验证和表示,数据流)

     

FooController.cs中的方法DoFoo()将未经验证的数据发送到第112行的Web浏览器,这可能导致浏览器执行恶意代码。

它不喜欢此方法返回的内容

return new JsonResult
    {
        Data = new
            {
                NameChanged = nameChanged,
                DatabaseUpdated = true,
                HasOpenAccount = contact.HasOpenAccount
            }
     };

这三个值都是布尔值。最后一个(contact.HasOpenAccount)是一个可以为空的布尔值。这是Fortify不喜欢的(我认为因为contact是从javascript传入的对象)。

我与HttpUtility.HtmlEncode混淆了,将其添加到HasOpenAccount行会将Fortify问题从关键问题更改为中等问题(验证效果不佳)。

我可以忍受这一点,但这似乎并不是真正的问题。可以为空的布尔值如何容易受到恶意攻击?这是一种可能性,还是Fortify疯了?

更新

我通过更改

来修复此问题

HasOpenAccount = contact.HasOpenAccount

HasOpenAccount = contact.HasOpenAccount ?? false

在null时返回false。这完全解决了Fortify问题。显然它不喜欢nullables?我的原始问题仍然存在,这甚至是一个真正的问题吗?

1 个答案:

答案 0 :(得分:0)

如果他们都是布尔值,那么只需评论这是误报,然后将其标记为“不是问题”(和/或禁止它)。