内容处置安全

时间:2013-10-16 20:36:45

标签: python security flask

所以这是设置:

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

用户提交一个包含一个文本字段的表单 - filename

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

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

重要的代码是:

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

这有多安全?

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

1 个答案:

答案 0 :(得分:1)

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

  

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

但是,要充分考虑此问题,请参阅RFC 2183: Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field,特别是“安全注意事项”部分。 (RFC 2183适用于邮件消息,但同样适用于HTTP用户代理。)