【问题标题】:Fortify thinks I have an XSS IssueFortify 认为我有 XSS 问题
【发布时间】:2014-12-26 23:26:25
【问题描述】:

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

当它为空时返回假。这完全解决了 Fortify 问题。显然它不喜欢空值?我最初的问题仍然存在,这甚至是一个真正的问题吗?

【问题讨论】:

    标签: boolean xss fortify


    【解决方案1】:

    如果它们都是布尔值,则只需注释这是误报,然后将其标记为不是问题(和/或禁止它)。

    【讨论】:

    • 我不担心解决问题,只要它确实是一个问题。这似乎是一个误报,但我不知道我是否忽略了什么。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2012-04-24
    • 1970-01-01
    • 2014-10-17
    • 2013-12-26
    相关资源
    最近更新 更多