Есть ли в JavaScript проблемы безопасности, связанные с FileReader? - PullRequest
0 голосов
/ 16 июня 2020

Рассмотрим следующий фрагмент кода:

(Частично) HTML:

<input type="file" accept=".txt" id="theFile" class="button" />

(Частично) JavaScript:

$('#theFile').on('change', function(e){
    readFile(this.files[0], function(e) {
       var text = e.target.result;
    })
})
function readFile(file, callback){
    var reader = new FileReader();
    reader.onload = callback
    reader.readAsText(file);
}

Мой вопрос: есть ли риск безопасности, связанный с использованием FileReader, особенно в этом случае, когда развертывается с readAsText? Например, что произойдет, если выбран не файл .txt, а что-то еще? Может ли злоумышленник каким-либо образом атаковать веб-сайт хостинга?

Если это актуально для целей вопроса, полный код просто извлекает текст из файла .txt и печатает его части на экран.

Я буду рад предоставить любую другую необходимую информацию или информацию.

1 Ответ

1 голос
/ 16 июня 2020

Да, все в порядке, здесь нет проблем с безопасностью.

  1. Код выполняется в браузере пользователя, а не на сервере, поэтому, даже если он был вредоносным, они бы только заражают себя.

  2. Приведенный выше код читает файл только как текст, поэтому, даже если он был вредоносным, он не будет запущен.

Если вам действительно нужно быть осторожным при создании веб-сайта, это если вы разрешаете пользователю загружать вредоносные файлы, а затем каким-то образом разрешаете им запускать их на стороне сервера. Примером может служить веб-сайт PHP с неправильной безопасностью, вы разрешили им загружать плохой файл PHP, и этот каталог был доступен через веб-сайт, файл PHP затем мог быть запущен на стороне сервера. просто поместите www.mywebsite.com/upload/danger.php в свой браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...