]> source.dussan.org Git - gitea.git/commitdiff
Sanitize user-input on file name (#17666)
authorGusted <williamzijl7@hotmail.com>
Wed, 17 Nov 2021 18:08:25 +0000 (18:08 +0000)
committerGitHub <noreply@github.com>
Wed, 17 Nov 2021 18:08:25 +0000 (18:08 +0000)
* Sanitize user-input on file name

- Sanitize user-input before it get passed into the DOM.
- Prevent things like "<iframe onload=alert(1)></iframe>" from being
executed. This isn't a XSS attack as the server seems to be santizing
the path as well.

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
web_src/js/features/repo-editor.js

index 7bf401207ad139c110c256223958e74195a60eb6..571fed9d2738d33be97cd527d2b4b2309d9ec0ce 100644 (file)
@@ -1,3 +1,4 @@
+import {htmlEscape} from 'escape-goat';
 import {initMarkupContent} from '../markup/content.js';
 import {createCodeEditor} from './codeeditor.js';
 
@@ -109,7 +110,7 @@ export function initRepoEditor() {
         value = parts[i];
         if (i < parts.length - 1) {
           if (value.length) {
-            $(`<span class="section"><a href="#">${value}</a></span>`).insertBefore($(this));
+            $(`<span class="section"><a href="#">${htmlEscape(value)}</a></span>`).insertBefore($(this));
             $('<div class="divider"> / </div>').insertBefore($(this));
           }
         } else {