【悟空云课堂】第三十一期:使用错误的运算符进行字符串比较(CWE-597:Use of Wrong Operator in String Comparison)

关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识!

该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。

【悟空云课堂】第三十一期:使用错误的运算符进行字符串比较(CWE-597:Use of Wrong Operator in String Comparison)

什么是使用错误的运算符进行字符串比较缺陷?

比较字符串时,使用了错误的运算符,例如当应使用equals()方法代替时,使用“==”。

使用错误的运算符进行字符串比较缺陷构成条件有哪些?

使用“==”运算符比较字符串。

使用错误的运算符进行字符串比较缺陷会造成哪些后果?

在Java中,使用”==”或”!=”比较两个字符串是否相等,实际上是比较两个对象是否相等,而不是它们的值。两个对象很可能永远不会相等。虽然该缺陷通常只影响程序的正确性,但如果将相等性用于安全决策,则可能会影响程序的安全性。

使用错误的运算符进行字符串比较缺陷的防范和修补方法有哪些?

使用equals()比较字符串。

使用错误的运算符进行字符串比较缺陷样例:

public static synchronized String getNextYouBianCode(String code) {
 		String newcode = "";
 		if (code == null || code =="") {
 			String zimu = "A";
 			String num = getStrNum(1);
 			newcode = zimu + num;
 		} else {

Wukong(悟空)软件代码安全检测修复系统检测上述程序代码,则可以发现代码中存在着“使用错误的运算符进行字符串比较” 导致的代码缺陷,如下图:
Wukong(悟空)软件代码安全检测修复系统
使用错误的运算符进行字符串比较缺陷在CWE中被编号为CWE-597:Use of Wrong Operator in String Comparison

更多的信息请参考CWE官网:http://cwe.mitre.org/data/definitions/597.html

了解更多安全资讯 请关注公众号 中科天齐软件安全中心

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值