Skip to content

Commit 131fefa

Browse files
author
‘niuerzhuang’
committed
feature: add validator handler.
1 parent 6f23a44 commit 131fefa

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed

dongtai-common/src/main/java/io/dongtai/iast/common/config/ConfigBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ private ConfigBuilder() {
2424
Config.<Boolean>create(ConfigKey.ENABLE_LOGGER));
2525
this.configMap.put(ConfigKey.LOGGER_LEVEL,
2626
Config.<String>create(ConfigKey.LOGGER_LEVEL));
27+
this.configMap.put(ConfigKey.VALIDATED_SINK,
28+
Config.<Boolean>create(ConfigKey.VALIDATED_SINK).setDefaultValue(false));
2729
}
2830

2931
public static ConfigBuilder getInstance() {
@@ -62,6 +64,7 @@ public void update(JSONObject config) {
6264
updateString(config, ConfigKey.JsonKey.JSON_VERSION_HEADER_KEY);
6365
updateBool(config, ConfigKey.JsonKey.JSON_ENABLE_LOGGER);
6466
updateString(config, ConfigKey.JsonKey.JSON_LOGGER_LEVEL);
67+
updateBool(config, ConfigKey.JsonKey.JSON_VALIDATED_SINK);
6568
updateRequestDenyList(config);
6669
}
6770

dongtai-common/src/main/java/io/dongtai/iast/common/config/ConfigKey.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public enum ConfigKey {
88
VERSION_HEADER_KEY,
99
ENABLE_LOGGER,
1010
LOGGER_LEVEL,
11+
VALIDATED_SINK,
1112
;
1213

1314
public enum JsonKey {
@@ -18,6 +19,7 @@ public enum JsonKey {
1819
JSON_VERSION_HEADER_KEY("version_header_name", VERSION_HEADER_KEY),
1920
JSON_ENABLE_LOGGER("enable_log", ENABLE_LOGGER),
2021
JSON_LOGGER_LEVEL("log_level", LOGGER_LEVEL),
22+
JSON_VALIDATED_SINK("report_validated_sink", LOGGER_LEVEL),
2123
;
2224

2325
private final String key;

dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/controller/impl/ValidatorImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public static void solveValidator(MethodEvent event, ValidatorNode validatorNode
4242
&& TaintPoolUtils.poolContains(event.objectInstance, event)) {
4343
hash = getStringHash(event.objectInstance);
4444
len = TaintRangesBuilder.getLength(event.objectInstance);
45+
event.setObjectValue(event.objectInstance, true);
4546
}
4647
} else if (position.isParameter()) {
4748
int parameterIndex = position.getParameterIndex();
@@ -54,6 +55,7 @@ public static void solveValidator(MethodEvent event, ValidatorNode validatorNode
5455
&& TaintPoolUtils.poolContains(parameter, event)) {
5556
hash = getStringHash(parameter);
5657
len = TaintRangesBuilder.getLength(parameter);
58+
event.addParameterValue(parameterIndex, parameter, true);
5759
}
5860
} else return;
5961

dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/vulscan/dynamic/DynamicPropagatorScanner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ private boolean sinkSourceHitTaintPool(MethodEvent event, SinkNode sinkNode) {
181181

182182
boolean commonCondition = tr.hasRequiredTaintTags(required) && !tr.hasDisallowedTaintTags(disallowed);
183183

184-
if (PropertyUtils.isDisabledValidated()) {
184+
if (PropertyUtils.validatedSink()) {
185185
tagsHit = commonCondition && !tr.hasValidatedTags(disallowed);
186186
} else {
187187
tagsHit = commonCondition;

dongtai-core/src/main/java/io/dongtai/iast/core/utils/PropertyUtils.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.dongtai.iast.core.utils;
22

3+
import io.dongtai.iast.common.config.ConfigBuilder;
4+
import io.dongtai.iast.common.config.ConfigKey;
35
import io.dongtai.iast.common.constants.PropertyConstant;
46
import io.dongtai.log.DongTaiLog;
57
import io.dongtai.log.ErrorCode;
@@ -224,10 +226,9 @@ public static Boolean isDisabledCustomModel() {
224226
return isDisabledCustomModel;
225227
}
226228

227-
public static Boolean isDisabledValidated() {
229+
public static Boolean validatedSink() {
228230
if (null == isDisabledCustomModel){
229-
List<String> disabledFeatures = getDisabledFeatures();
230-
isDisabledCustomModel = disabledFeatures.contains("validated");
231+
isDisabledCustomModel = ConfigBuilder.getInstance().get(ConfigKey.VALIDATED_SINK);
231232
}
232233
return isDisabledCustomModel;
233234
}

0 commit comments

Comments
 (0)