我使用UploadIfy通过ajax上传多个文件。每次通过ajax请求上载文件并将其成功保存在服务器上时,我都会将该文件的文件名返回给客户端,并以BASE64编码。
然后我将DIV添加到DOM,在其中使用BASE64编码的文件名作为该DIV的数据属性的值,并将其用作对该DIV的唯一引用。
第二,我使用OnClick函数将图像添加到该DIV中,以通过ajax从服务器中删除该文件,并使用相同的BASE64编码的文件名作为参数。
上传文件“ test.pdf”的示例:
<div data-id="dGVzdC5wZGY="><img onclick="RemoveFile('dGVzdC5wZGY=')"/></div>
我使用JQuery访问DIV:
$("div[data-id='" + fn64 + "']")
其中fn64是作为参数发送的BASE64编码文件名。
用户是否可以通过任何方式创建会破坏我的HTML或JavaScript的文件名?还是其他XSS风险? XSS太复杂了,使我变得偏执。
答案 0 :(得分:0)
我没有评论,因为我没有50信誉点,但是.. base64编码在哪里进行?是在服务器还是客户端上? RemoveFile()是什么样的?
我认为,如果输入是在服务器上编码的,然后由服务器返回,则应该没问题。
此外,您可以清理服务器上的用户输入,以提高安全性。
我认为需要更多有关代码如何获取文件名并将其发送到服务器的信息。