1

我正在尝试针对安全漏洞运行 fortify 代码检查器,它正在标记一些我使用 setTimeout 的实例以及来自标准 3rd 方代码库的一些实例。不知道如何修复它们。

我的 JS 文件

var hasHash = document.location.hash;

        if (hasHash) {
            if ($.browser.msie) {
                setTimeout(function () {
                    MOM.utils.scrollTo(MOM.$window.scrollTop() - 60);
                }, 1000);
            }
            else {
               MOM.utils.scrollTo(MOM.$window.scrollTop() - 60);
            }
        }

文件 all.js 将未经验证的用户输入解释为第 7982 行的源代码。在运行时解释用户控制的指令可以让攻击者执行恶意代码。

第 1 行和第 4 行的标志(setTimeout)

bootstrap.editable.js中的超时功能,我用它来实现某些表单字段的内联编辑。

if(this.options.highlight) {
                var $e = this.$element,
                    bgColor = $e.css('background-color');

                $e.css('background-color', this.options.highlight);
                setTimeout(function(){
                    if(bgColor === 'transparent') {
                        bgColor = '';
                    }
                    $e.css('background-color', bgColor);
                    $e.addClass('editable-bg-transition');
                    setTimeout(function(){
                       $e.removeClass('editable-bg-transition');
                    }, 1700);
                }, 10);
            }

selectivizr.js 中的 setInterval 函数

if (enabledWatchers.length > 0) {
            setInterval( function() {
                for (var c = 0, cl = enabledWatchers.length; c < cl; c++) {
                    var e = enabledWatchers[c];
                    if (e.disabled !== e.$disabled) {
                        if (e.disabled) {
                            e.disabled = false;
                            e.$disabled = true;
                            e.disabled = true;
                        }
                        else {
                            e.$disabled = e.disabled;
                        }
                    }
                }
            },250)
        }

在所有 3 个文件上都出现同样的错误。不确定如何替换这些 JS 命令或如何处理 3rd 方库。处理这些安全漏洞的好方法是什么。

4

1 回答 1

0

Selectivizr 主要用于使 UI 兼容 EI 9 或以下。主要关注 CSS 相关的东西。并且数据不是来自外部来源。所以我们可以将其视为误报但我不确定坦率地说。但是您可以尝试使用条件注释或 htmlshiv.js 作为 Selectivizr.js 的替代品

于 2017-08-30T13:17:54.600 回答