diff --git a/res/static/res/script/DetailsWindow.js b/res/static/res/script/DetailsWindow.js
index 512c4b8..cc61d88 100644
--- a/res/static/res/script/DetailsWindow.js
+++ b/res/static/res/script/DetailsWindow.js
@@ -11,13 +11,13 @@ var DetailsWindow = {
},
setDetails: function (file) {
var fileInfo = "
"
- + "Name | | " + file.file_name + " |
"
+ + "Name | | " + escapeHTML(file.file_name) + " |
"
+ "Url | | Open |
"
- + "Mime Type | | " + file.mime + " |
"
+ + "Mime Type | | " + escapeHTML(file.mime) + " |
"
+ "Id | | " + file.id + " |
"
+ "Size | | " + file.file_size + " |
"
+ "Upload Date | | " + file.date_upload + " |
"
- + "Description | | " + file.desc + " |
"
+ + "Description | | " + escapeHTML(file.desc) + " |
"
+ "
";
$("#info-fileDetails").html(fileInfo);
}
diff --git a/res/static/res/script/ListNavigator.js b/res/static/res/script/ListNavigator.js
index c563664..1fdf47e 100644
--- a/res/static/res/script/ListNavigator.js
+++ b/res/static/res/script/ListNavigator.js
@@ -127,9 +127,9 @@ var ListNavigator = {
var thumb = this.data[i].thumbnail;
var name = this.data[i].file_name;
- var itemHtml = name + "
"
+ var itemHtml = escapeHTML(name) + "
"
+ "
";
+ + "class=\"listItemThumbnail lazy\" alt=\"" + escapeHTML(name) + "\"/>";
navigatorItems[i].innerHTML = itemHtml;
}
@@ -150,7 +150,7 @@ var ListNavigator = {
var itemHtml = ""
- + filename + "
"
+ + escapeHTML(filename) + "
"
// + "

"
+ "
";
diff --git a/res/static/res/script/Viewer.js b/res/static/res/script/Viewer.js
index a974d4b..7cd0feb 100644
--- a/res/static/res/script/Viewer.js
+++ b/res/static/res/script/Viewer.js
@@ -42,4 +42,13 @@ var Viewer = {
DetailsWindow.setDetails(file);
Toolbar.setViews(file.views);
}
-};
\ No newline at end of file
+};
+
+// Against XSS attacks
+function escapeHTML(str) {
+ return String(str)
+ .replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"');
+}
\ No newline at end of file