用烧瓶保护静态文件

时间:2012-08-25 01:02:16

标签: python security static flask password-protection

我正在构建一个烧瓶应用程序,我希望它只在用户通过身份验证时提供一些静态文件。它是一个流量非常低的应用程序(仅供内部使用)。我该怎么做?我想到的一件事是使用serve_static(),并将其置于身份验证检查之后,但是使用了已经提供内容的静态目录。

1 个答案:

答案 0 :(得分:12)

简单地继承flask.Flask并覆盖send_static_file方法:

class SecuredStaticFlask(Flask):
    def send_static_file(self, filename):
        # Get user from session
        if user.is_authenticated():
            return super(SecuredStaticFlask, self).send_static_file(filename)
        else:
            abort(403) 
            # Or 401 (or 404), whatever is most appropriate for your situation

另请参阅the definition of send_static_file