Prevenzione degli attacchi di SQL injection cambiando frequentemente i nomi delle tabelle?

1

Comprendo il processo di base dell'attacco SQL injection. Mi è stato detto che un modo per prevenire un tale attacco è cambiando frequentemente il nome della tabella! È possibile? Se è così, qualcuno può fornirmi un link per leggerlo più perché non sono riuscito a trovare una spiegazione al riguardo sul web.

    
posta Katherine 12.10.2016 - 23:57
fonte

2 risposte

4

Cambiare periodicamente il nome della tabella renderà l'iniezione SQL un po 'più difficile (non puoi più registrare ciecamente un nome utente di Robert'); DROP TABLE Students;-- per causare lo scompiglio). Tuttavia, esistono tecniche di iniezione SQL per capire i nomi delle tabelle, che possono aggirare le tue difese.

Il modo corretto per prevenire l'SQL injection è utilizzare query parametrizzate. Questo interrompe completamente l'iniezione ed è molto meno complicato rispetto alla riscrittura delle query ogni volta che si cambiano i nomi delle tabelle.

    
risposta data 13.10.2016 - 00:05
fonte
1

No.

Con la maggior parte dei DBMS è possibile accedere alle informazioni su tabella e database tramite information_schema , quindi nascondere i nomi delle tabelle non fornisce alcun beneficiare. Anche con quei DBMS che non forniscono queste informazioni, i nomi delle tabelle possono essere bruteforce e altri attacchi possono essere anche possibili (scrittura di file, esecuzione di comandi di sistema, esclusione dell'autenticazione, ecc.).

L'unica difesa adeguata contro SQL Injection sono dichiarazioni preparate. Le autorizzazioni appropriate e il filtro di input ragionevole sono utili come difesa in profondità.

Ma anche come difesa in profondità, i nomi delle tabelle che cambiano frequentemente non sembrano un approccio ragionevole in quanto sono troppi i problemi con troppo poco o niente da guadagnare. Al massimo, potresti prendere in considerazione l'uso di nomi di tabelle non predefiniti o di un prefisso di tabella per evitare un qualche sfruttamento automatico delle vulnerabilità note (ma anche quello è un campo lungo e non vale davvero la pena).

    
risposta data 13.10.2016 - 00:27
fonte

Leggi altre domande sui tag