Improper Authentication
When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct.
Authentication is the process of determining if a claimed identity is correct. When authentication is insufficient or incorrect, attackers can assume the identity of legitimate users.
Como corrigir esta vulnerabilidade
Estratégias de prevenção para Improper Authentication baseadas em 2 regras de detecção do Shoulder.
Use jwt.verify() instead of jwt.decode() when assigning user identity
- const decoded = jwt.decode(token); + const decoded = jwt.verify(token, process.env.JWT_SECRET, { + algorithms: ['HS256'] + }); req.user = decoded;
Use early returns for authentication failures and constant-time comparison
from flask import request, jsonify - - @app.route('/login', methods=['POST']) - def login(): - user = User.query.filter_by(username=request.json['username']).first() - if user and user.password == request.json['password']: - return jsonify({'token': generate_token(user)}) - return jsonify({'error': 'Invalid'}), 401 + from werkzeug.security import check_password_hash + + @app.route('/login', methods=['POST']) + def login(): + user = User.query.filter_by(username=request.json['username']).first() + if not user or not check_password_hash(user.password_hash, request.json['password']): + return jsonify({'error': 'Invalid credentials'}), 401 + return jsonify({'token': generate_token(user)})
Encontre vulnerabilidades no seu código
Use o Shoulder para escanear seu código em busca de padrões Improper Authentication. 2 regras.
# Scan with Shoulder CLI npx @shoulderdev/cli trust --cwe=287 # Or scan entire project npx @shoulderdev/cli trust .
Regras de Detecção (2)
O que observar nas revisões de código
Estes padrões indicam vulnerabilidades potenciais de Improper Authentication. Procure-os durante revisões de código e auditorias de segurança.
Escaneie seu código para Improper Authentication
O Shoulder CLI encontra padrões vulneráveis em todo o seu código.