@@ -61,8 +61,8 @@ public void bad3(HttpServletRequest request) {
61
61
runtimeServices .parse (reader , new Template ()); // $hasTemplateInjection
62
62
}
63
63
64
- @ GetMapping (value = "bad4 " )
65
- public void bad4 (HttpServletRequest request ) {
64
+ @ GetMapping (value = "good1 " )
65
+ public void good1 (HttpServletRequest request ) {
66
66
String name = "ttemplate" ;
67
67
String code = request .getParameter ("code" );
68
68
@@ -72,7 +72,7 @@ public void bad4(HttpServletRequest request) {
72
72
StringWriter w = new StringWriter ();
73
73
StringReader reader = new StringReader ("test" );
74
74
75
- Velocity .evaluate (context , w , "mystring" , reader ); // $hasTemplateInjection
75
+ Velocity .evaluate (context , w , "mystring" , reader ); // Safe
76
76
}
77
77
78
78
@ GetMapping (value = "bad5" )
@@ -85,15 +85,17 @@ public void bad5(HttpServletRequest request) {
85
85
86
86
StringWriter w = new StringWriter ();
87
87
VelocityEngine engine = null ;
88
- engine .mergeTemplate ("testtemplate.vm" , "UTF-8" , context , w ); // $hasTemplateInjection
88
+ engine .mergeTemplate ("testtemplate.vm" , "UTF-8" , context , w ); // Safe
89
89
AbstractContext ctx = null ;
90
90
ctx .put ("key" , code );
91
- engine .evaluate (ctx , null , null , null ); // $hasTemplateInjection
91
+ engine .evaluate (ctx , null , null , (String ) null ); // Safe
92
+ engine .evaluate (ctx , null , null , (Reader ) null ); // Safe
92
93
engine .evaluate (null , null , null , code ); // $hasTemplateInjection
94
+ engine .evaluate (null , null , null , new StringReader (code )); // $hasTemplateInjection
93
95
}
94
96
95
- @ GetMapping (value = "bad6 " )
96
- public void bad6 (HttpServletRequest request ) {
97
+ @ GetMapping (value = "good2 " )
98
+ public void good2 (HttpServletRequest request ) {
97
99
String name = "ttemplate" ;
98
100
String code = request .getParameter ("code" );
99
101
@@ -102,24 +104,13 @@ public void bad6(HttpServletRequest request) {
102
104
103
105
StringWriter w = new StringWriter ();
104
106
Template t = new Template ();
105
- t .merge (context , w ); // $hasTemplateInjection
106
- }
107
-
108
- @ GetMapping (value = "bad7" )
109
- public void bad7 (HttpServletRequest request ) {
110
- String name = "ttemplate" ;
111
- String code = request .getParameter ("code" );
107
+ t .merge (context , w ); // Safe
108
+ t .merge (context , w , new LinkedList <String >()); // Safe
112
109
113
- VelocityContext context = new VelocityContext ();
114
- context .put ("code" , code );
115
-
116
- StringWriter w = new StringWriter ();
117
- Template t = new Template ();
118
- t .merge (context , w , new LinkedList <String >()); // $hasTemplateInjection
119
110
}
120
111
121
- @ GetMapping (value = "bad8 " )
122
- public void bad8 (HttpServletRequest request ) {
112
+ @ GetMapping (value = "bad6 " )
113
+ public void bad6 (HttpServletRequest request ) {
123
114
String code = request .getParameter ("code" );
124
115
125
116
StringResourceRepository repo = new StringResourceRepositoryImpl ();
0 commit comments