#!/usr/bin/python3 from flask import Flask, send_file, abort import os app = Flask(__name__) static_node_port = 5001 def safe_name(name): # normally has no slashes, but %2f / .. still show up decoded. if not name or name != os.path.basename(name) or ".." in name or "\x00" in name: abort(404) return name @app.route('/img/') def img(name): return send_file(f'files/static/img/{safe_name(name)}') @app.route('/css/') def css(name): return send_file(f'files/static/css/{safe_name(name)}') @app.route('/fonts/') def fonts(name): return send_file(f'files/static/fonts/{safe_name(name)}') @app.route('/js/') def js(name): return send_file(f'files/static/js/{safe_name(name)}') if __name__ == '__main__': app.run(host="0.0.0.0", port=static_node_port)