Ero curioso di sapere se fosse possibile proteggersi da un attacco SQL injection rimuovendo tutti gli spazi da un input String?
Ho letto su SQL Injection su OWASP, ma non menzionano nulla sulla rimozione degli spazi, quindi ero curioso di sapere perché avrebbe funzionato o meno?
Stavo esaminando questa domanda, che chiede informazioni su trim
e la risposta in alto dice questo:
No, l'aggiunta di un trim non impedirà l'iniezione sql.
trim
rimuove solo lo spazio all'esterno della stringa.Seleziona * da una tabella dove il nome come '%' + @ SearchString + '%'
Se @SearchString conteneva qualcosa come
'' update aTable set someColumn = 'JackedUpValue' dove someColumn come '
Allora quando tu metti tutto insieme ed eseguilo dinamicamente otterrai
Seleziona * da una tabella dove nome come '%' aggiorna aTable set someColumn = 'JackedUpValue' dove alcuneColumn come '%'
Tuttavia, se hai preso quella stringa di ricerca
update aTable set someColumn = 'JackedUpValue' dove someColumn come
e hai eseguito l'operazione mostrata in questa domanda, non vorresti ottenere
updateaTablesetsomeColumn = 'JackedUpValue'wheresomeColumnlike
quale non dovrebbe essere eseguito, giusto?
Sono curioso di sapere se c'è qualche forma di SQL injection che potrebbe sconfiggerlo? C'è una parola comandi pericolosi? Se questo può essere sconfitto, rimuovere gli spazi aiuterebbe almeno un po 'con la difesa?
Nota: sto facendo questa domanda per pura curiosità, non per aggirare l'uso i metodi "appropriati" di SQL Injection Prevention.