2

所以这里是设置:

我有一个带有 Flask-WTF 的简单 Flask 应用程序。

用户提交带有一个文本字段的表单 - filename.

表单有一个 CSRF 令牌(来自 Flask-WTF。)

如果用户提交表单并验证,则浏览器会下载一个带有提交文件名的自动生成文件(即不是来自服务器文件系统的文件)。

重要的代码是:

response.headers['Content-Disposition'] = 'attachment; filename={0}.lsc'.format(filename)

那有多安全?

换句话说,如果恶意用户可以在Content-Disposition标题中插入任意文本,他们可能会做什么?

4

1 回答 1

1

他们将无法对服务器做任何事情,如果他们正确实施RFC 2616 ,在客户端应该是安全的:

接收用户代理不应该尊重 filename-parm 参数中存在的任何目录路径信息,这是目前唯一被认为适用于 HTTP 实现的参数。文件名应仅被视为终端组件。

但是,要全面考虑此问题,请参阅RFC 2183:在 Internet 消息中通信表示信息:内容处置头字段,特别是安全注意事项部分。(RFC 2183 适用于邮件消息,但同样适用于 HTTP 用户代理。)

于 2013-10-16T21:06:13.427 回答