使用錯誤的運算子進行字串比較缺陷漏洞

zktq2021發表於2021-10-12

一、什麼是使用錯誤的運算子進行字串比較缺陷?

比較字串時,使用了錯誤的運算子,例如當應使用equals()方法代替時,使用“==”。

二、使用錯誤的運算子進行字串比較缺陷的構成條件有哪些?

使用“==”運算子比較字串。

三、使用錯誤的運算子進行字串比較缺陷會造成哪些後果?

在Java中,使用”==”或”!=”比較兩個字串是否相等,實際上是比較兩個物件是否相等,而不是它們的值。兩個物件很可能永遠不會相等。雖然該缺陷通常隻影響程式的正確性,但如果將相等性用於安全決策,則可能會影響程式的安全性。

四、使用錯誤的運算子進行字串比較缺陷的防範和修補方法有哪些?

使用equals()比較字串。

五、使用錯誤的運算子進行字串比較缺陷樣例:

 

用悟空軟體安全檢測工具檢測上述程式程式碼,則可以發現程式碼中存在著“使用錯誤的運算子進行字串比較” 導致的程式碼缺陷,如下圖:

 

使用錯誤的運算子進行字串比較缺陷在CWE中被編號為CWE-597:Use of Wrong Operator in String Comparison


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2795490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章