Spiegare l'esempio di best practice sulla validazione dei dati OWASP

2

Sto esaminando la pagina di convalida dei dati OWASP cercando di capire cosa intendono con il "Migliore Metodo "per" convalida delle regole aziendali ". Li cito qui:

Example - Scenario

  • You are to populate a list with accounts provided by the back-end system
  • The user will choose an account, choose a biller, and press next

...

Best Method

The original code emitted indexes rather than account names.

int payeeLstId = session.getParameter('payeelstid');

accountFrom = account.getAcctNumberByIndex(payeeLstId);

Not only is this easier to render in HTML, it makes validation and business rule validation trivial. The field cannot be tampered with.

Gli altri esempi (errati / accettabili) elencati sono ignorati poiché è facile per l'utente manomettere i parametri.

Perché un utente non è in grado di manomettere payeeLstId nel "Metodo migliore", inserendo così il accountFrom da modificare? Non stanno più usando un modulo? Come finisce la selezione dell'utente nella sessione? Trovo l'esempio poco chiaro.

    
posta span 19.08.2015 - 22:29
fonte

1 risposta

1

Questo esempio non impedisce di modificare intenzionalmente il valore perché la funzionalità spiegata dice che l'utente può impostare il parametro payeeLstId . Tuttavia, l'esempio fornito impedisce contro più attacchi poiché il parametro viene prima convertito in int prima di essere utilizzato per richiedere l'account. Con la manomissione suppongo che OWASP significhi che il valore non può essere utilizzato per sfruttare le vulnerabilità elencate (buffer overflow, XML injection, ecc.) Nella Perché questa è una sezione errata non impostare il valore come riferimento un altro account.

    
risposta data 19.08.2015 - 22:45
fonte

Leggi altre domande sui tag