1212
1313public class FastjsonCheck implements SinkSafeChecker {
1414 public static List <String > FASTJSON_SINK_METHODS = Arrays .asList (
15- "com.alibaba.fastjson.JSON.parseObject(java.lang.String)" ,
16- "com.alibaba.fastjson.JSON.parse(java.lang.String,int)" ,
17- "com.alibaba.fastjson.JSON.parse(java.lang.String)"
15+ " com.alibaba.fastjson.JSON.parseObject(java.lang.String)" . substring ( 1 ) ,
16+ " com.alibaba.fastjson.JSON.parse(java.lang.String,int)" . substring ( 1 ) ,
17+ " com.alibaba.fastjson.JSON.parse(java.lang.String)" . substring ( 1 )
1818 );
1919
2020 private String policySignature ;
@@ -36,9 +36,9 @@ public boolean isSafe(MethodEvent event, SinkNode sinkNode) {
3636 try {
3737 Class <?> cls ;
3838 if (JSON_CLASS_LOADER == null ) {
39- cls = Class .forName ("com.alibaba.fastjson.JSON" );
39+ cls = Class .forName (" com.alibaba.fastjson.JSON" . substring ( 1 ) );
4040 } else {
41- cls = Class .forName ("com.alibaba.fastjson.JSON" , false , JSON_CLASS_LOADER );
41+ cls = Class .forName (" com.alibaba.fastjson.JSON" . substring ( 1 ) , false , JSON_CLASS_LOADER );
4242 }
4343 Field f = cls .getDeclaredField ("VERSION" );
4444 Class <?> t = f .getType ();
@@ -61,9 +61,9 @@ public boolean isSafe(MethodEvent event, SinkNode sinkNode) {
6161 // https://github.com/alibaba/fastjson/wiki/fastjson_safemode
6262 Class <?> cfgClass ;
6363 if (PARSE_CONFIG_CLASS_LOADER == null ) {
64- cfgClass = Class .forName ("com.alibaba.fastjson.parser.ParserConfig" );
64+ cfgClass = Class .forName (" com.alibaba.fastjson.parser.ParserConfig" . substring ( 1 ) );
6565 } else {
66- cfgClass = Class .forName ("com.alibaba.fastjson.parser.ParserConfig" , false , PARSE_CONFIG_CLASS_LOADER );
66+ cfgClass = Class .forName (" com.alibaba.fastjson.parser.ParserConfig" . substring ( 1 ) , false , PARSE_CONFIG_CLASS_LOADER );
6767 }
6868 Object cfg = cfgClass .getMethod ("getGlobalInstance" ).invoke (null );
6969 Object isSafeMode = cfg .getClass ().getMethod ("isSafeMode" ).invoke (cfg );
0 commit comments