Parcourir la source

Fix XSS issue in templating example

Kevin Brown il y a 6 ans
Parent
commit
1c394a421b
1 fichiers modifiés avec 7 ajouts et 1 suppressions
  1. 7 1
      pages/08.selections/docs.md

+ 7 - 1
pages/08.selections/docs.md

@@ -25,10 +25,16 @@ function formatState (state) {
   if (!state.id) {
     return state.text;
   }
+
   var baseUrl = "{{ url('user://pages/images/flags') }}";
   var $state = $(
-    '<span><img src="' + baseUrl + '/' + state.element.value.toLowerCase() + '.png" class="img-flag" /> ' + state.text + '</span>'
+    '<span><img class="img-flag" /> <span></span></span>'
   );
+
+  // Use .text() instead of HTML string concatenation to avoid script injection issues
+  $state.find("span").text(state.text);
+  $state.find("img").attr("src", baseUrl + "/" + state.element.value.toLowerCase() + ".png");
+
   return $state;
 };