CWE ID: 1024
Name: Comparison of Incompatible Types
Das Produkt führt einen Vergleich zwischen zwei Entitäten durch, wobei diese Entitäten jedoch unterschiedlicher, inkompatibler Typen sind, bei denen keine Garantie für korrekte Ergebnisse gegeben werden kann, wenn sie direkt verglichen werden.
In Sprachen mit strikter Typisierung, die jedoch Casting/Conversion unterstützen, wie beispielsweise C oder C++, könnte der Programmierer annehmen, dass das Casten einer Entität in denselben Typ wie eine andere Entität sicherstellt, dass der Vergleich korrekt durchgeführt wird. Dies kann jedoch nicht garantiert werden. In Sprachen ohne strikte Typisierung, wie PHP oder JavaScript, kann es zu implizitem Casting/Conversion in einen Typ kommen, dessen Kenntnis dem Programmierer fehlt, was zu unerwarteten Ergebnissen führen kann; beispielsweise könnte der String “123” in einen numerischen Typ konvertiert werden. Siehe Beispiele.
Effektivität: Unknown
Beschreibung: Testen Sie das Vergleichsschema vor der Bereitstellung des Codes in die Produktion gründlich. Führen Sie sowohl positive als auch negative Tests durch.