Я использую 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 настолько сложен, что делает меня параноиком.