Vulnerable: tainted value reaches sink
name = request.args.get("name")q = f"SELECT ... name = '{name}'"db.execute(q)Safe: parameter binding sanitizes
name = request.args.get("name")db.execute("... name = ?", (name,))SQL engine receives data, not syntax