所以这里的设置:内容处置安全
我有一个Flask-WTF的简单Flask应用程序。
用户提交带有一个文本字段的表单 - filename
。
的形式具有CSRF令牌(从烧瓶WTF。)
如果用户提交表单和验证,则该浏览器下载一个自动生成文件(即,不是从服务器文件系统文件)的文件名提交。
重要的代码是:
response.headers['Content-Disposition'] = 'attachment; filename={0}.lsc'.format(filename)
安全性如何呢?
换句话说,如果恶意用户可以在Content-Disposition
头中插入任意文本,可能会做什么?
你是什么意思的自动生成的文件?文件从哪里来? –
它根据要求生成。即它采用模板,并从会话中插入数据,然后将其作为下载文件进行流式传输。注意,文件名变量不在模板中使用。实际上它只用于提供的代码行中。 – korylprince
我会检查服务器端语言不容易被头注入(例如,如果'filename'包含新的行字符)。 – SilverlightFox