Session Hijacking
Concept
Vulnerable Scenario
Example Code (Vulnerable)
from flask import Flask, request, session
app = Flask(__name__)
app.secret_key = 'insecure-secret-key'
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
# Authenticate the user
if authenticate_user(username, password):
session['user_id'] = get_user_id(username)
return 'Login successful'
else:
return 'Invalid credentials'
@app.route('/sensitive-action')
def sensitive_action():
if 'user_id' in session:
# Perform sensitive action
return 'Sensitive action performed'
else:
return 'Unauthorized'Explanation
Prevention
Example Code (Secure)
Conclusion
Semgrep Rule
Last updated