Skip to content
Extraits de code Groupes Projets
Valider ada821c0 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

fix: Éviter de possibles XSS avec le nom des fichiers uploadés (en js)

(cherry picked from commit df7543f1)
parent ebe21380
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -190,18 +190,28 @@ function Bigup(params, opts, callbacks) { ...@@ -190,18 +190,28 @@ function Bigup(params, opts, callbacks) {
var extension = $.trouver_extension(file.name); var extension = $.trouver_extension(file.name);
var template = var template =
'\n<div class="fichier">' '\n<div class="fichier">' +
+ '\n\t<div class="description">' '\n\t<div class="description">' +
+ '\n\t\t<div class="vignette_extension ' + extension + '" title="' + file.type + '"><span></span></div>' '\n\t\t<div class="vignette_extension ' +
+ '\n\t\t<div class="infos">' $.escapeHtml(extension) +
+ '\n\t\t\t<span class="name"><strong>' + file.name + '</strong></span>' '" title="' +
+ '\n\t\t\t<span class="size">' + $.taille_en_octets(file.size) + '</span>' file.type +
+ '\n\t\t</div>' '"><span></span></div>' +
+ '\n\t\t<div class="actions">' '\n\t\t<div class="infos">' +
+ '\n\t\t\t<span class="bigup-btn btn btn-default cancel" onClick="$.bigup_enlever_fichier(this); return false;">' + _T("bigup:bouton_annuler") + '</span>' '\n\t\t\t<span class="name"><strong>' +
+ '\n\t\t</div>' $.escapeHtml(file.name) +
+ '\n\t</div>' '</strong></span>' +
+ '\n</div>\n'; '\n\t\t\t<span class="size">' +
$.taille_en_octets(file.size) +
'</span>' +
'\n\t\t</div>' +
'\n\t\t<div class="actions">' +
'\n\t\t\t<span class="bigup-btn btn btn-default cancel" onClick="$.bigup_enlever_fichier(this);">' +
_T('bigup:bouton_annuler') +
'</span>' +
'\n\t\t</div>' +
'\n\t</div>' +
'\n</div>\n';
return template; return template;
} }
......
...@@ -171,4 +171,14 @@ $.mime_type_image = function(extension) { ...@@ -171,4 +171,14 @@ $.mime_type_image = function(extension) {
break; break;
} }
return mime; return mime;
}; };
\ No newline at end of file
/** Escape HTML */
$.escapeHtml = function(unsafe) {
return unsafe
.replaceAll('&', '&amp;')
.replaceAll('<', '&lt;')
.replaceAll('>', '&gt;')
.replaceAll('"', '&quot;')
.replaceAll("'", '&#039;');
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter