Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Reflected XSS Vulnerability in /echo Endpoint by Implementing Input Sanitization #145

Open
wants to merge 2 commits into
base: r0path-patch-11
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from flask import Flask, request, jsonify, session
from markupsafe import escape
from werkzeug.security import generate_password_hash, check_password_hash
import os
import subprocess
Expand Down Expand Up @@ -93,10 +94,12 @@ def get_note(note_id):

return jsonify({"error": "Note not found"}), 404

@app.route('/echo/<str:echo>', methods=['GET'])
@app.route('/echo/<string:echo>', methods=['GET'])
def get_echo(echo):

return "<h>" + echo + "</h>", 200
# Using escape() to prevent XSS attacks by escaping special HTML characters
# Changed from string concatenation to f-string for better readability
# The route parameter type was fixed from 'str' to 'string' to match Flask's conventions
return f"<h>{escape(echo)}</h>", 200

@app.route('/login', methods=['POST'])
def login():
Expand Down