diff --git a/app.py b/app.py index c856646..9f1a6bb 100644 --- a/app.py +++ b/app.py @@ -7,6 +7,8 @@ import logging import json import os +from flask_limiter.util import get_remote_address +from flask_limiter import Limiter import waitress.server import flask @@ -19,8 +21,15 @@ ACTION_MAP = {'shock': whspah.MODES.SHOCK, app = flask.Flask(__name__, static_folder='./www/') +limiter = Limiter( + get_remote_address, + app=app, + storage_uri="memory://", +) + @app.route('/', defaults={'path': 'index.html'}) @app.route('/') +@limiter.exempt def staticPage(path): """ Returns anything requested in the static folder. @@ -35,6 +44,7 @@ def staticPage(path): return flask.send_from_directory(app.static_folder, path) @app.route('/transmit', methods=['POST'], strict_slashes=False) +@limiter.limit("1/second") def transmit(): """ Transmits the data contained within the POST request through WHSPAH. @@ -97,4 +107,4 @@ if __name__ == '__main__': pass server.close() - app.config['transmitter'].close() \ No newline at end of file + app.config['transmitter'].close() diff --git a/requirements.txt b/requirements.txt index 018981b..46a0bc3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +Flask-Limiter waitress whspah flask \ No newline at end of file