Estoy viendo la página Validación de datos de OWASP tratando de averiguar qué significan con "Mejor Método "para" validación de reglas de negocio ". Los cito aquí:
Ejemplo: Escenario
- Debe rellenar una lista con las cuentas proporcionadas por el sistema back-end
- El usuario elegirá una cuenta, elegirá un facturador y presionará a continuación
...
Mejor método
El código original emitió índices en lugar de nombres de cuenta.
int payeeLstId = session.getParameter('payeelstid');
accountFrom = account.getAcctNumberByIndex(payeeLstId);
Esto no solo es más fácil de representar en HTML, sino que también hace la validación y La validación de las reglas de negocios es trivial. El campo no puede ser manipulado.
Los otros ejemplos (malos / aceptables) enumerados se descartan, ya que es fácil para el usuario manipular los parámetros.
¿Por qué un usuario no podría manipular el payeeLstId
en el "Mejor método" y, por lo tanto, cambiar el accountFrom
para cambiar? ¿Ya no están utilizando un formulario? ¿Cómo termina la selección del usuario en la sesión? Encuentro el ejemplo poco claro.