У меня есть 3 типа файлов (XML, PDF, zip), которые хранятся в файлах моего сервера и отправляются пользователю (на стороне клиента) в формате base64 по запросу (когда клиент нажимает кнопку).
Файлы загружаются на компьютер пользователя и не отображаются (на странице HTML).
Я провел тест безопасности с сервисом Checkmarx и получил проблему безопасности:
«Функция метода в строке 58 MyFile.js получает данные из базы данных для элемента readFileSync . Затем значение этого элемента проходит через код без надлежащей фильтрации или кодирования и в конечном итоге отображается для пользователя в методе function в строке 58 MyFile.js . Это может включить хранимую атаку между сайтами (XSS). ".
Код на моей стороне сервера:
var fs = require('fs');
downloadFile: function (req, res) {
var params = req.allParams();
var contents = fs.readFileSync(FilePathInTheProject).toString('base64');
res.send(contents);
},
Я не понимаю, как хранимые на сервере файлы, которые недоступны со стороны клиента, могут включить хранимую атаку межсайтовых сценариев (XSS)?
Как я могу проверить наличие уязвимости?
И как правильно решить эту проблему безопасности?