Come hai visto finora, le iniezioni di abilità sono molto pericolose e sono anche molto facili da usare per Ocker e
molto facili da trovare.
Li troverai dappertutto in alcuni siti Web davvero famosi.
Le persone cercano di prevenire queste vulnerabilità utilizzando i filtri.
I filtri possono far sembrare che non ci siano exploit, ma se effettivamente provi più duramente usando la codifica di diversi
tipi di codifica o usando un proxy, sarai in grado di ignorare la maggior parte di questi filtri.
Alcuni programmatori usano una lista nera.
Quindi, per esempio, impediscono l'uso del sindacato.
Impediscono l'uso di inserti e cose del genere.
Ancora una volta non è sicuro al 100%.
Può essere aggirato usando una lista bianca.
Esattamente gli stessi problemi della lista nera.
Il modo migliore per farlo è programmare la tua applicazione web in modo che non consenta l'inserimento
del codice e quindi eseguirla.
Quindi il modo migliore per farlo consiste nell'usare la parametrizzazione in cui sono separati i dati e il codice.
E il modo migliore per mostrarti cosa intendo è usare un esempio che sto mantenendo la minima quantità di
programmazione.
In questo esempio non voglio che sia un programma e un esempio.
In realtà ci sono degli errori nella programmazione, ma sto cercando di darti il concetto più
di come programmarlo.
Quindi il codice vulnerabile che stavamo guardando usava fare questo in modo da fare selezionare una stella dagli account in
cui il nome utente è uguale a quello che abbiamo inserito nella casella di testo 1 e poi abbiamo usato per mettere la casella di testo 1.
Mettiamolo qui.
Dicevamo come uomini e poi chiudevamo il codice e poi siamo in grado di fare un sindacato selezionare ed eseguire qualcos'altro.
E poi, una volta terminato, aggiungevamo il commento che sostanzialmente ignora tutto ciò che
viene dopo.
Quindi quando copi questo e lo metti qui vedrai cosa
sta succedendo.
Quindi è la selezione.
Ora liberiamoci di questo, perché questo è solo il taglio non è bello e
in realtà sto solo mettendo un commento su questo, quindi farà una selezione da account dove il nome utente è uguale
a Aardman Union seleziona ed esegui qualunque cosa vogliamo fare.
Questo è molto brutto ed è molto difficile da proteggere.
Come ho detto, usa i filtri e tutto ciò che evidenzia solo il problema non lo risolverà.
Il modo migliore per farlo è usare le istruzioni di parametrizzazione proprio così.
Quindi questo è il modo sicuro per farlo.
Prima di tutto preparate la vostra affermazione sulla maggior parte delle
lingue come BHB e tutte hanno effettivamente una funzione del genere e potete preparare lo starter selezionato da account in cui
un nome utente è uguale a un punto interrogativo e quindi inviate i valori.
Quindi ph ora sappiamo che la dichiarazione delle abilità è una stella selezionata da account in cui il nome utente è uguale a qualcosa
e quindi ha il valore della casella di testo 1.
Quindi, anche se arriviamo e usiamo la nostra affermazione molto subdola qui e incollata lì, l'applicazione web saprà che
il valore per questo è Admen Union seleziona vivo.
Lei prova ad andare e selezionare inizia da account in cui il nome utente nome utente e poi in
realtà aggiungerà le proprie quotazioni e cercano di trovare un nome utente con il seguente nome utente.
Quindi questa intera cosa verrà eseguita in questo modo,
quindi sarà prossima dagli account in cui il nome utente è uguale a come molti sindacati selezionano questo hashtag.
In questo modo non verrà mai utilizzato come valore un elemento inserito nella casella di testo e l'applicazione Web saprà che questo
è un valore.
Non è un codice e non verrà mai eseguito.
Quindi questo ti proteggerà dalle iniezioni di Escurial.
Puoi usare i filtri come seconda linea di difesa.
E consiglio anche di utilizzare i privilegi minimi possibili, in modo da utilizzare per ogni database utilizzare un utente con la minima quantità di privilegi che
desiderano, quindi non consentire agli utenti di fare qualcosa che non gli
consentiranno.
Se si tratta di un semplice sito Web che esegue solo la selezione, consente all'utente di selezionare solo se è necessario
selezionare e inserire, quindi solo consentire loro di selezionare una risposta.
E questa è una regola che dovresti mantenere con tutto anche all'interno dell'esistenza.
Assicurati che la persona con le autorizzazioni sia sempre la più idonea possibile.
Ogni utente non ha permessi extra di cui non ha bisogno.