File tree Expand file tree Collapse file tree 1 file changed +34
-11
lines changed
java/test/org/openqa/selenium/environment/webserver Expand file tree Collapse file tree 1 file changed +34
-11
lines changed Original file line number Diff line number Diff line change @@ -191,21 +191,44 @@ private Cookie parse(String cookieString) {
191191
192192 return builder .build ();
193193 }
194-
195194 private String escapeCookieValue (String value ) {
196195 if (value == null || value .isEmpty ()) {
197196 return "" ;
198197 }
199198
200- return value
201- .replace ("\\ " , "\\ \\ " )
202- .replace ("\" " , "\\ \" " )
203- .replace (";" , "\\ ;" )
204- .replace ("," , "\\ ," )
205- .replace ("\r " , "" )
206- .replace ("\n " , "" )
207- .replace ("<" , "<" )
208- .replace (">" , ">" )
209- .replace ("&" , "&" );
199+ StringBuilder cookieValue = new StringBuilder ();
200+
201+ for (char c : value .toCharArray ()) {
202+ switch (c ) {
203+ case '\\' :
204+ cookieValue .append ("\\ \\ " );
205+ break ;
206+ case '"' :
207+ cookieValue .append ("\\ \" " );
208+ break ;
209+ case ';' :
210+ cookieValue .append ("\\ ;" );
211+ break ;
212+ case ',' :
213+ cookieValue .append ("\\ ," );
214+ break ;
215+ case '\r' :
216+ case '\n' :
217+ // Skip carriage return and newline characters
218+ break ;
219+ case '<' :
220+ cookieValue .append ("<" );
221+ break ;
222+ case '>' :
223+ cookieValue .append (">" );
224+ break ;
225+ case '&' :
226+ cookieValue .append ("&" );
227+ break ;
228+ default :
229+ cookieValue .append (c ); // Append safe characters as they are
230+ }
231+ }
232+ return cookieValue .toString ();
210233 }
211234}
You can’t perform that action at this time.
0 commit comments