我在CheckMarx安全扫描中遇到此问题:
:的[[第69行]的方法
exec
]web\src\main\java\abc\web\actions\HomeAction.java
获取用户输入CNF_KEY_COSN
元素。然后,该元素的值流经代码没有经过适当的清理或验证,最终被在方法的logException
的line 905中向用户显示web\src\main\java\gov\abc\external\info\ServiceHelper.java
。这可能启用Cross-Site-Scripting攻击。
HomeAction.java
的第69行
String cosn = (String) request.getParameter(CNF_KEY_CON);
[905行]]在
ServiceHelper.java
中仅记录错误:
private static void logException(InfoServiceException exception, String message) {
String newMessage = message + ": " + exception.getMessageForLogging();
try {
log.error(newMessage, exception);
} catch (Exception e) {
// fallback to console
System.out.println("error logging exception ->");
e.printStackTrace(System.out);
System.out.println("exception ->");
System.out.print(newMessage);
if (exception != null) exception.printStackTrace(System.out);
}
}
将HomeAction.java
中的另一个代码块更改为:
if(cosn!= null && cosn.matches("[0-9a-zA-Z_]+")) { ... }
但是那没有帮助。如何验证/清除/编码谢谢Line 69
。非常感谢您的帮助。
我在CheckMarx安全扫描中遇到此问题:web \ src \ main \ java \ abc \ web \ actions \ HomeAction.java的第69行的方法exec获取CNF_KEY_COSN元素的用户输入。此元素的值...
clean()
方法。您可以执行以下操作来清理输入内容:String sanitizedInput = Jsoup.clean(originalInput, "", Whitelist.none(), new OutputSettings().prettyPrint(false));