阻止从xml和其他文本文件执行代码

时间:2014-05-01 19:05:25

标签: xml security flask xss code-injection

我在Flask写一个网站,允许用户上传然后查看文本文件(JSON和XML)。我发送带有Content-type application/json标头的JSON文件,并使用application/xml发送XML。

从表单上传文件后,我使用secure_filename()处理名称。我使用文件对象上的save()方法将文件保存到服务器。这些文件保存在我服务器上的目录中。否则,我不处理文件;为了我的项目的目的,重要的是xml标签保持完整,因为稍后用户可能会选择解析文件。

要将文件提供给用户,请使用send_from_directory

我的问题是,这个设计是否容易受到XSS或代码注入的攻击?如果是这样,我该如何防止此类攻击呢?

1 个答案:

答案 0 :(得分:2)

不,您的设计不容易受到XSS攻击。您在使用任何用户提供的内容时,不会自行生成您的网页。

内容作为黑匣子通过我们的网站;从浏览器到您的文件系统,然后返回到可能选择再次下载内容的其他HTTP客户端。

您完全控制的文件名,您从未阅读过该文件的内容,您从不接受任何文件内容并将其放入生成的HTML内容中。

可能存在的唯一问题是,有人上传的文件不是XML或JSON,而是一个利用下载程序用来解析文件的漏洞的文件。然而,这不是XSS攻击。