修复强化检查标记的动态代码注入问题

时间:2017-08-23 05:52:15

标签: javascript jquery fortify javascript-security

我正在尝试为安全漏洞运行强化代码检查程序,它正在标记我使用setTimeout的一些实例以及标准第三方代码库中的一些实例。不知道如何修复它们。

我的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命令或如何处理第三方库。处理这些安全漏洞的好方法是什么。

1 个答案:

答案 0 :(得分:0)

Selectivizr主要用于使UI与EI 9或更低版本兼容。主要关注CSS相关的东西。数据不是来自外部来源。所以我们可以认为这是误报但我不确定坦率地说。但您可以尝试使用条件注释或htmlshiv.js替代Selectivizr.js