from flask import request, redirect, session, render_template, send_from_directory, Flask, url_for import bleach import generate def sanitize_html(html): # Allow only a limited set of tags and attributes allowed_tags = ['a', 'b', 'i', 'em', 'strong'] allowed_attributes = {'a': ['href']} return bleach.clean(html, tags=allowed_tags, attributes=allowed_attributes) app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def index(): return render_template('index.j2') @app.route('/ip6-gen', methods=['GET', 'POST']) def ip6gen(): if request.method == 'POST': subnet = request.form['subnet'] prefix = request.form['prefix'] ip = generate.generate_ip(subnet, prefix) type = "IPv6 generator" return redirect(url_for('result', result=ip, type=type)) return render_template('ip6-gen.j2') @app.route('/result') def result(): result = request.args.get('result') type = request.args.get('type') result = sanitize_html(result) type = sanitize_html(type) return render_template('result.j2', result=result, type=type) @app.route('/assets/style.css') def css(): return send_from_directory('static', 'index.css') @app.route('/port') def port(): port = generate.generate_port() return render_template('port-gen.j2', result=port) if __name__ == '__main__': app.run(debug=True)