Closed firehomework closed 7 months ago
在指令匹配时,无参数指令对应的匹配代码会引发问题:
else if (strLowerMessage.substr(intMsgCnt, 7) == "dismiss") { intMsgCnt += 7; if (isPrivate())
当输入.dismiss?( 时,由于匹配到前半部分dismiss,而指令内并没有检测指令参数,导致错误的指令输入仍然可以生效。
这意味着,只要是以点开头,dismiss后面的所有字符串都会被忽略。
建议:增加判断,如判断长度是否一致,从而规避这个问题。
另附上BUG造成的后果图:
在指令匹配时,无参数指令对应的匹配代码会引发问题:
当输入.dismiss?( 时,由于匹配到前半部分dismiss,而指令内并没有检测指令参数,导致错误的指令输入仍然可以生效。
这意味着,只要是以点开头,dismiss后面的所有字符串都会被忽略。
建议:增加判断,如判断长度是否一致,从而规避这个问题。
另附上BUG造成的后果图: