Spring EL (SpEL) 代码执行
Spring EL (SpEL) code execution
我想使用 SpEL 来评估一些用户输入。但这打开了一个安全漏洞,因为 SpEL enginge 也执行代码并且可以启动 类 并访问静态对象。例如 T(System).exit(0) 退出系统。
是否可以防止此类代码执行?
避免这种情况的方法是从不评估表达式语言中的用户输入。
您几乎永远无法枚举并因此阻止执行所有可能的 "bad" 代码。
相反,您可以将用户输入用作具有固定 EL 表达式的环境变量(字符串、数字)。
我想使用 SpEL 来评估一些用户输入。但这打开了一个安全漏洞,因为 SpEL enginge 也执行代码并且可以启动 类 并访问静态对象。例如 T(System).exit(0) 退出系统。
是否可以防止此类代码执行?
避免这种情况的方法是从不评估表达式语言中的用户输入。
您几乎永远无法枚举并因此阻止执行所有可能的 "bad" 代码。
相反,您可以将用户输入用作具有固定 EL 表达式的环境变量(字符串、数字)。