Business Logic Flaws
Concept
Vulnerable Scenario
Example Code (Vulnerable)
from flask import Flask, request, session
app = Flask(__name__)
app.secret_key = 'your-secret-key'
@app.route('/apply-discount', methods=['POST'])
def apply_discount():
product_id = request.form['product_id']
quantity = int(request.form['quantity'])
product = get_product_by_id(product_id)
total_price = product['price'] * quantity
if total_price > 100:
discount_percentage = 0.1
elif total_price > 50:
discount_percentage = 0.05
else:
discount_percentage = 0
discount_amount = total_price * discount_percentage
discounted_price = total_price - discount_amount
session['cart']['total_price'] = discounted_price
return 'Discount applied successfully'Explanation
Prevention
Example Code (Secure)
Conclusion
Semgrep Rule
Last updated