如何解决checkmarx中的错误?
Id clientId = (id)inputMap.get('ClientId')
账户a= [选择Id, Client__c, ParentId, Parent.RecordType.DeveloperName,CI_ClientID__c 来自 ID = 的帐户:clientId limit 1000] 但它不起作用。
错误是:方法invokeMethod从元素inputmap获取用户输入。此输入稍后由应用程序直接连接到包含 SQL 命令的字符串变量中,而无需进行验证。然后,该字符串在第 55 行的方法中用于查询数据库选择,而无需数据库进行任何额外的过滤。这可能允许用户篡改过滤器参数。
请帮忙
也许此代码会对您有所帮助,因为此错误与未经验证而使用用户的输入数据有关。 Checkmarx 警告代码可能容易受到攻击。
Id clientId = (Id)inputMap.get('ClientId');
if (clientId != null) {
// Escaping user input before using it in a query
String escapedClientId = String.escapeSingleQuotes(clientId);
Account a = [
SELECT Id, Client__c, ParentId, Parent.RecordType.DeveloperName, CI_ClientID__c
FROM Account
WHERE Id = :escapedClientId
LIMIT 1000
];
} else {
// Error or action to take if the value is missing clientId
}