Sì, a seconda della sicurezza del database sottostante, un singolo attacco SQL Injection può influenzare altre tabelle nello stesso database e persino tabelle in database diversi o in tabelle di casi molto specifici in esecuzione su istanze di database diverse.
È persino possibile aggiornare / leggere da più tabelle contemporaneamente utilizzando un'unica query di database. Poiché hai taggato la tua domanda come mysql, ecco una query MySQL per l'aggiornamento di più tabelle:
UPDATE Books, Orders
SET Orders.Quantity=Orders.Quantity+2,
Books.InStock=Books.InStock-2
WHERE Books.BookID=Orders.BookID
AND Orders.OrderID = 1002;
Leggere è semplice come usare un JOIN:
SELECT t1.name, t2.otherColumn
FROM Table1 as t1
LEFT JOIN Table2 as t2
ON t1.id = t2.id
Ovviamente l'efficacia di queste query dipende dalla struttura della tabella sottostante, ma è possibile leggere in modo assoluto da tabelle non volute / multiple usando SQL Injection.
Un esempio di quando ciò non sarebbe possibile è se le tabelle in questione appartengono tutte a schemi diversi, ciascuno con un account specifico a cui è possibile accedere. Esempio:
app1.ImportantTable
app2.OtherTable
app3.BigTable
Se ciascuno di questi schemi è configurato per consentire solo un accesso utente diverso, non può esserci accesso involontario. Pertanto, se nel database è presente un'impostazione App1User
che può solo leggere / modificare lo schema app1
, non sarà in grado di selezionare i dati dalle tabelle nello schema app2
.