Variabile assegnata all'oggetto Injection Sink (security / detect-object-injection)

7

Sto testando il mio codice su ESLint. Dice:

Variable Assigned to Object Injection Sink (security/detect-object-injection).

Non sto usando una risorsa esterna per assegnarla alla mia variabile, però. C'è davvero un problema nella riga var a = newArray[c]; ?

function shuffleTitleImagesArray(originArr) {
        var newArray = originArr.slice(0); //copy of old array
        for (var c = 0; c < newArray.length; c++) {
            var b = Math.floor(Math.random() * (c + 1));
            var a = newArray[c];
            newArray[c] = newArray[b];
            newArray[b] = a;
        }
        return newArray;
    }
    
posta Andy 04.10.2017 - 19:51
fonte

1 risposta

1

No, il tuo codice è sicuro. Il problema sarebbe se l'utente potesse controllare cosa c'è dentro le parentesi quadre ( c in questo caso). Un utente malintenzionato potrebbe quindi fornire qualcosa di inaspettato, come il nome di un metodo sulla catena del prototipo. Questo a sua volta potrebbe innescare ogni sorta di comportamento imprevedibile, potenzialmente con implicazioni sulla sicurezza.

Ma nel tuo caso c sarà sempre un numero, quindi stai bene.

    
risposta data 20.03.2018 - 12:35
fonte

Leggi altre domande sui tag