Probabilmente sto solo paranoicamente di nuovo sulla sicurezza. L'ultima cosa che mi tiene sveglio la notte sono i controlli che uno dei nostri siti usa. Esegue ColdFusion 9 in ambiente Windows e controlliamo un input da parte di isNumeric per verificare che una stringa o input sia effettivamente un numero. Se non è un'esecuzione di stop numerico e mostra un messaggio all'utente, altrimenti fare ciò che deve essere fatto normalmente. La mia domanda è, c'è un modo per rompere questo assegno? Fondamentalmente un qualche tipo di formato che è numerico riporterà come un numero ma in realtà può includere qualcosa di brutto?
<cfparam name="userInput" default="0">
<cfif isNumeric(userInput)>
// Should be a number id 500
// Use value to do SQL stuff because should be number
// I know, not the best practice. Plan to fix all of these but the
// amount of code is staggering to fix all of these. Figured
// start with one thing then move on
<cfquery>
SELECT * FROM db WHERE serial = #userInput#
</cfquery>
<cfelse>
// Not a number ie '500sws'
</cfif>
C'è qualcosa che può essere passato in userInput che può ingannarlo per segnalare true ma in realtà non lo è?
Il motivo per cui ti sto chiedendo è che questo sito è vecchio. Le cose sono antiquate. Sono in procinto di lavorare su una grande quantità di codice e ci sono punti di vulnerabilità che correggerò mentre vado, ma se isNumeric può essere ingannato, allora ho più lavoro da fare.
Non sono sicuro che lo stia spiegando nel modo giusto. Fammi sapere se c'è bisogno di chiarimenti.
Se questo deve essere spostato altrove, fammi sapere. La mia ultima domanda di sicurezza che ho posto è finita qui, quindi ho deciso di provare prima qui. Grazie a tutti.