utils/utils/app.py
2025-03-22 13:33:56 -05:00

45 lines
No EOL
1.3 KiB
Python

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']
ip = generate.generate_ip(subnet)
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)