diff --git a/app/main/views.py b/app/main/views.py
index b98736b0e5e2607fdede36988c7b7977f2771e25..02bf0b2d305366aaf456ca5437bb8976ae65e740 100644
--- a/app/main/views.py
+++ b/app/main/views.py
@@ -18,6 +18,11 @@ bp = Blueprint('main', __name__)
 
 
 # Declare custom error handlers for all views
+@bp.app_errorhandler(403)
+def forbidden_error(error):
+    return render_template('403.html'), 403
+
+
 @bp.app_errorhandler(404)
 def not_found_error(error):
     return render_template('404.html'), 404
diff --git a/app/templates/403.html b/app/templates/403.html
new file mode 100644
index 0000000000000000000000000000000000000000..de3fcf1cffbd7b8c9a426812cb05c35cba7dd482
--- /dev/null
+++ b/app/templates/403.html
@@ -0,0 +1,8 @@
+{%- extends "base.html" %}
+
+{% block title %}Forbidden - CSEntry{% endblock %}
+
+{% block main %}
+  <h1>Forbidden</h1>
+  <p>You don't have the permission to access the requested resource</p>
+{%- endblock %}