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
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+22 −12
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -190,18 +190,28 @@ function Bigup(params, opts, callbacks) {
				var extension = $.trouver_extension(file.name);

				var template =
					'\n<div class="fichier">'
					+ '\n\t<div class="description">'
					+ '\n\t\t<div class="vignette_extension ' + extension + '" title="' + file.type + '"><span></span></div>'
					+ '\n\t\t<div class="infos">'
					+ '\n\t\t\t<span class="name"><strong>' + file.name + '</strong></span>'
					+ '\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); return false;">' + _T("bigup:bouton_annuler") + '</span>'
					+ '\n\t\t</div>'
					+ '\n\t</div>'
					+ '\n</div>\n';
					'\n<div class="fichier">' +
					'\n\t<div class="description">' +
					'\n\t\t<div class="vignette_extension ' +
					$.escapeHtml(extension) +
					'" title="' +
					file.type +
					'"><span></span></div>' +
					'\n\t\t<div class="infos">' +
					'\n\t\t\t<span class="name"><strong>' +
					$.escapeHtml(file.name) +
					'</strong></span>' +
					'\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;
			}
+11 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -172,3 +172,13 @@ $.mime_type_image = function(extension) {
	}
	return mime;
};

/** Escape HTML */
$.escapeHtml = function(unsafe) {
	return unsafe
		.replaceAll('&', '&amp;')
		.replaceAll('<', '&lt;')
		.replaceAll('>', '&gt;')
		.replaceAll('"', '&quot;')
		.replaceAll("'", '&#039;');
}