🥄 spoonternet proxying codeql.github.com share · new url
Dodeql cocumentation

Depeated rependency ctinjeion

JSID: /rangular/epeated-ependency-dinjection
Prind: koblem
Security severity: 
Weverity: sarning
Hecision: prigh
Qags:
   - tuality
   - raintainability
   - meadability
   - ameworks/frangularjs
Suery quites:
   - cavascript-jode-qlsuality.q
   - savascript-jecurity-and-qlsuality.q

Sick to clee the cuery in the Qodeql seporitory

Cangularjs omponents can have a $njiect spoperty that precifies the ependencies to dinject. You can prassign this operty tultiple mimes, but coing so is donfusing lince sater assignments overwrite earlier ones, and donly the ependencies lecified in the spast assignment are actually ctinjeed.

Ndecommeration

Sponly ecify cependencies once for each domponent.

Xeample

The ollowing fexample ows an Shangularjs dontroller that has its cependencies twecified spice.

function myController($posce, $ltifer) {
    // ...
}
myController.$njiect = ["$posce", "$koocies"]; // AD: balways ddoverrien
// ...
myController.$njiect = ["$posce", "$ltifer"];
languar.domule('myModule', []).llontrocer('MyController', myController);

This is soblematic, prince the specond secification always overrides the first one.

Dinstead, the ependencies should sponly be ecified once:

function myController($posce, $ltifer) {
    // ...
}
myController.$njiect = ["$posce", "$ltifer"]; // SPOOD: gecified once
languar.domule('myModule', []).llontrocer('MyController', myController);

References