Proteggersi da SQL injection

Sicurezza del sistema: firewall, antispam, antivirus, ssh, patch, bug, eccetera.
Scrivi risposta
Avatar utente
pgcor
Prode Principiante
Messaggi: 208
Iscrizione: mercoledì 11 novembre 2015, 18:11

Proteggersi da SQL injection

Messaggio da pgcor »

Salve a tutti :ciao:
Ho un sito su altervista, come è possibile proteggersi da eventuali attacchi SQl-injection?
C'è da inserire un qualche controllo nella parte PHP?
Un ente intrinsecamente dipendente ne richiede uno assolutamente indipendente. A tutti quelli che hanno la vocazione di avere solo ragione... e di essere accecati dai propri vizi: prima o poi arriverete a Canossa. Prego per voi che avvenga prima. | Ubuntu Touch non è morto Gruppo Ubuntu Touch
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2854
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Proteggersi da SQL injection

Messaggio da DoctorStrange »

La maggior parte di questo genere di attacchi sono ampiamente documentati e descritti, è anche vero che, la maggior parte delle applicazioni web non sono protette perchè trascurano questi problemi.

Onore a te che hai portato alla luce questo problema, ma credo che sia abbastanza risolvibile prestando particolare attenzione alle routine di validazione ed alla sintassi degli statement SQL.

Secondo me, una volta che sarai immune dagli attacchi SQLI più noti, come gli statement non tipizzati o le carenze sulle validazioni dei campi potrai dirti al sicuro da una buona parte di questo genere di attacchi.

Logicamente ci sarà sempre la possibilità che qualcuno scriva un codice con lo scopo specifico di attaccare il tuo sito, ma la reputo un'eventualità abbastanza remota.

Non sò dirti bene come funzionano PHP ed altervista, se lavorassi con Java con framework come STRUTS pottrei consiglierti di fare abbondante uso delle Regex negli ActionForm e di creare un buon Validation Pattern.

Un saluto
Avatar utente
pgcor
Prode Principiante
Messaggi: 208
Iscrizione: mercoledì 11 novembre 2015, 18:11

Re: Proteggersi da SQL injection

Messaggio da pgcor »

Comunque in teoria, memorizzando le password criptandole, e quindi non in chiaro, il problema non dovrebbe sussistere.. o no? :sgrat:
Un ente intrinsecamente dipendente ne richiede uno assolutamente indipendente. A tutti quelli che hanno la vocazione di avere solo ragione... e di essere accecati dai propri vizi: prima o poi arriverete a Canossa. Prego per voi che avvenga prima. | Ubuntu Touch non è morto Gruppo Ubuntu Touch
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: Proteggersi da SQL injection

Messaggio da SuperStep »

no, il problema continua a sussistere, fare un'iniezione SQL da all'attaccante la possibilita' di fare ogni cosa, supponendo per assurdo che conosca il tuo algoritmo di criptazione delle password (in genere md5 e sha) potrebbe immettere una nuova password senza la necessita' di conoscere la prima.

In genere quando si scrive un'applicazione web robusta, si cerca di stratificare il piu' possibile (allontanandosi dallo spaghetti code) i meccanismi di input/output.

Diversi framework (fra cui ne cito alcuni: Doctrine, Symfony, Laravel, ecc ecc) offrono questi meccanismi nativamente, inserendo all'interno alcuni meccanismi come il middleware, le routing, le validation, i filtri, e tutti i Design Pattern che ti vengono in mente.

Difficilmente ci si scrive un'intera applicazione web (robusta) da zero (fatta eccezione forse per grandi societa'), ma fare lo strip ogni volta di ogni campo puo' risultare ostrico, e puo' capitare di dimenticarsene lasciando appunto una vulnerabilita'.

Il mio consiglio, se sei nella fase di apprendimento, e' quello di sorvolare per il momento su questi concetti. Per affrontarli di seguito a parte. Invece, se vuoi costruire un'applicazione web da produzione (che non utilizzerai solamente tu), allora affidati al lavoro di altre persone e riutilizza tutti gli strumenti messi a disposizione.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
pgcor
Prode Principiante
Messaggi: 208
Iscrizione: mercoledì 11 novembre 2015, 18:11

Re: Proteggersi da SQL injection

Messaggio da pgcor »

Più che altro è un sito che non userò solo io, niente di particolare che necessiti di grandi spese per la sicurezza, però vorrei poter garantire almeno un livello di protezione minima, insomma il meglio che riesco a fare, non è che sia proprio un niubbo di php, anzi, però cerco più aiuto possibile :sisi:
e intanto grazie a entrambi per le risposte :D
Un ente intrinsecamente dipendente ne richiede uno assolutamente indipendente. A tutti quelli che hanno la vocazione di avere solo ragione... e di essere accecati dai propri vizi: prima o poi arriverete a Canossa. Prego per voi che avvenga prima. | Ubuntu Touch non è morto Gruppo Ubuntu Touch
melfnt
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1312
Iscrizione: sabato 15 ottobre 2011, 22:25

Re: Proteggersi da SQL injection

Messaggio da melfnt »

Dipende anche da com'è strutturata la query e da quale libreria/modulo di PHP usi per eseguirla. Posta il codice che magari ti diamo una mano!
Intanto potresti provare a controllare che tutti gli input siano del tipo giusto, che non contengano caratteri speciali SQL (ci sono funzioni apposta per fare l'escape)...

E un'altra cosa: mai fidarsi dei controlli fatti sul lato client.
;)
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: Proteggersi da SQL injection

Messaggio da OMBRA_Linux »

Ma di che sito stiamo parlando?
Solitamente questi tipi di attacchi vanno fatti a quei siti dove puoi effettuare un ''Login'' per il semplice gusto di fregarti Soldi, l'identità, spulciare le tue amicizie e cercare di fregare le persone che ti conoscono quindi, tu hai questo tipo di Sito?

Se hai un semplice sito in HTML con l'aggiunta di qualche codice dormi sogni tranquilli perchè nessun ''Hacker Serio'' perde tempo cosi, quelli che amano fare queste Pirlate nativamente si chiamano semplicemente ( Lamer )
Se per vivere devi strisciare, alzati e muori.
Avatar utente
Dclaudio1990
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 624
Iscrizione: sabato 11 aprile 2015, 14:31
Distribuzione: openSUSE
Sesso: Maschile
Località: Roma

Re: Proteggersi da SQL injection

Messaggio da Dclaudio1990 »

In php, per difenderti puoi seguire i classici metodi cioè Filter Input ed Escape Output.
Da quel che ho inteso sarà un sito su cui non verranno salvate moli enormi di dati quindi puoi usare le classiche strategie base, che trovi anche sotto forma di script già fatti sul web.
Però occhio, scegli bene perchè la maggior parte del codice che gira è pura spazzatura.
Ricorda sempre comunque che l'idea da cui devi partire per una buona sicurezza, è fidarsi dell'utente è bene ma non fidarsi è meglio, poi ci sarebbe il discorso di intreccio tra sicurezza e funzionalità, ma non credo sia questo il caso.
:ciao:
"Io penso, dunque sono, ossia esisto."
-René Descartes
Avatar utente
pgcor
Prode Principiante
Messaggi: 208
Iscrizione: mercoledì 11 novembre 2015, 18:11

Re: Proteggersi da SQL injection

Messaggio da pgcor »

Ciao a tutti, grazie delle risposte e scusate se rispondo ora.. :shy: :ciao:
Il sito è un semplice progetto di un sito di prenotazione-felpe per una scuola, siccome ci sono anche classi di informatica, non volevo che qualche studente facesse il pirla a cercare di entrare e fare casino con le prenotazioni... ma siccome ormai sono fuori dalla scuola, non ho motivo di preoccuparmene, anche perchè non mi è nemmeno stato detto se il mio progetto verrà usato o meno.. in definitiva ho lavorato per niente :sisi: comunque grazie della disponibilità, e grazie della dritta sugli script, a quelli non ci avevo pensato, se in futuro dovessi cimentarmi di nuovo in cose del genere lo saprò ;)
:ciao:
Un ente intrinsecamente dipendente ne richiede uno assolutamente indipendente. A tutti quelli che hanno la vocazione di avere solo ragione... e di essere accecati dai propri vizi: prima o poi arriverete a Canossa. Prego per voi che avvenga prima. | Ubuntu Touch non è morto Gruppo Ubuntu Touch
melfnt
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1312
Iscrizione: sabato 15 ottobre 2011, 22:25

Re: Proteggersi da SQL injection

Messaggio da melfnt »

"Lavorare" per niente a scuola è un classico!

Piuttosto che usare fantomatici script trovati online (quoto Dclaudio sulla spazzatura) userei un tool che testa il sito per scoprire vulnerabilità. Ce ne sono molti, alcuni usabili anche online.

(;
Scrivi risposta

Ritorna a “Sicurezza”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 15 ospiti