Ich baue eine Flasche Anwendung, und ich möchte es einige statische Dateien nur liefern, wenn der Benutzer authentifiziert ist. Es ist eine sehr verkehrsschwache Anwendung (nur für den internen Gebrauch). Wie würde ich darüber gehen? Eine Sache, an die ich dachte, ist die Verwendung von serve_static(), und das hinter einer Authentifizierungsüberprüfung, aber die das statische Verzeichnis verwendet, aus dem flash bereits Inhalte bereitstellt.Sichere statische Dateien mit Kolben
Antwort
Unterklasse einfach flask.Flask
und überschreiben die send_static_file
Methode:
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
Siehe auch the definition of send_static_file
und folgende
Süß, das funktioniert! – marcog
Es scheint keine Zeile 857 in dieser Datei mehr zu geben. –
@JesseAldridge - Ich habe den Link so festgelegt, dass er auf einen festen Commit verweist. Danke für die Köpfe hoch! –
Sie auch an authentischen wollen nur für * bestimmte * statische Dateien oder möchten Sie die Authentifizierung für * alle * statische Dateien (und/oder die gesamte Anwendung)? –
Alle statischen Dateien. Ich habe bereits eine Authentifizierung in der App, also wenn ich gegen die aktive Sitzung nach der App schauen kann, wäre das perfekt. – marcog