searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

PropertiesConstants.transform使用不合理存在栈溢出的风险

2023-09-21 03:44:48
1
0

在使用alogic框架进行数据解析的时候经常会调用PropertiesConstants.transform()来进行数据填充。数据填充默认替换符是${}。如a=${abc}-123,则会从参数中查找abc的值替换到${abc}从而计算出a的值。如果此时abc的值为testValue,则计算出来的a=testValue-123;如果此时abc=${abc},则a的值替换后还是a=${abc}-123,就会导致一直递归替换,直到栈溢出。

故在使用过程中需要避免参数替换的时候不会存在重复递归${}。如果业务不需要使用到变量替换则不应该使用PropertiesConstants.transform()来获取参数。

具体代码如下图

0条评论
作者已关闭评论
陈青龙
7文章数
0粉丝数
陈青龙
7 文章 | 0 粉丝
原创

PropertiesConstants.transform使用不合理存在栈溢出的风险

2023-09-21 03:44:48
1
0

在使用alogic框架进行数据解析的时候经常会调用PropertiesConstants.transform()来进行数据填充。数据填充默认替换符是${}。如a=${abc}-123,则会从参数中查找abc的值替换到${abc}从而计算出a的值。如果此时abc的值为testValue,则计算出来的a=testValue-123;如果此时abc=${abc},则a的值替换后还是a=${abc}-123,就会导致一直递归替换,直到栈溢出。

故在使用过程中需要避免参数替换的时候不会存在重复递归${}。如果业务不需要使用到变量替换则不应该使用PropertiesConstants.transform()来获取参数。

具体代码如下图

文章来自个人专栏
陈青龙个人
7 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0