Безопасно ли использовать строки в кодировке BASE64 в переменных javascript и значениях атрибутов HTML? - PullRequest
0 голосов
/ 14 марта 2019

Я использую UploadIfy для загрузки нескольких файлов через ajax. Каждый раз, когда файл был загружен с помощью ajax-запроса и успешно сохранен на сервере, я возвращаю имя файла этого файла клиенту в кодировке BASE64.

Затем я добавляю DIV в DOM, где я использую имя файла в кодировке BASE64 в качестве значения атрибута данных этого DIV, который я использую в качестве уникальной ссылки на этот DIV.

Во-вторых, я добавляю изображение в этот DIV с помощью функции OnClick для удаления этого файла с сервера через ajax, и я использую то же имя в кодировке BASE64 в качестве параметра.

Пример для загруженного файла 'test.pdf':

<div data-id="dGVzdC5wZGY="><img onclick="RemoveFile('dGVzdC5wZGY=')"/></div>

Я получаю доступ к DIV, используя JQuery:

$("div[data-id='" + fn64 + "']")

где fn64 - имя файла в кодировке BASE64, отправляемое в качестве параметра.

Есть ли способ, которым пользователь может создать имя файла, которое сломало бы мой HTML или javascript? Или любые другие риски XSS? XSS настолько сложен, что делает меня параноиком.

1 Ответ

0 голосов
/ 14 марта 2019

Я не могу комментировать, потому что у меня нет 50 очков репутации, но .. Где происходит кодирование base64? это на сервере или на клиенте? Как выглядит RemoveFile ()?

Я думаю, что если вход кодируется на сервере, а затем возвращается сервером, все должно быть в порядке.

Также вы можете обезопасить ввод данных на сервере, чтобы обеспечить дополнительную безопасность.

Я думаю, что нужна дополнительная информация о том, как ваш код берет имя файла и отправляет его на сервер.

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