quella Attacco con iniezione di script, spesso definito esecuzione di codice remoto (RCE), è un attacco commesso da aggressori che hanno la capacità di iniettare ed eseguire codice dannoso in un'applicazione; Attacco ad iniezione. Questo codice esterno è in grado di compromettere la sicurezza dei dati, compromettere l'integrità del database o le proprietà private. In molti casi, riescono ad aggirare il controllo dell'autenticazione e tali attacchi sono solitamente associati ad applicazioni che desiderano eseguire, basandosi sull'input dell'utente.
In generale, le applicazioni sono più vulnerabili se il codice viene eseguito senza prima passare la convalida. Un semplice caso di codice vulnerabile mostrato di seguito.
Nell'esempio sopra, la pagina delle informazioni PHP è vulnerabile e verrà mostrata se l'URL è http://example.com/?code=phpinfo(); Funziona.
Poiché l'interazione dell'utente con le applicazioni è essenziale nel mondo online di oggi, l'iniezione di codice è cresciuta ed è diventata una vera minaccia per molte risorse online.
Link veloci
Tipi di attacchi di script injection
Esistono principalmente quattro tipi di attacchi di script injection: SQL injection, JavaScript injection, shell injection e valutazione dinamica. Tutti questi hanno lo stesso principio di funzionamento, ovvero il codice viene inserito al loro interno ed eseguito dalle applicazioni, ma i due su cui mi concentrerò sono l'iniezione SQL e l'iniezione di Script.
Come funziona l'iniezione SQL?
Nel caso dell'iniezione SQL, l'attacco mira a corrompere una query di database legittima per produrre dati fraudolenti. L'autore dell'attacco deve prima individuare la voce di codice all'interno dell'applicazione Web di destinazione incorporata nella query SQL.
Questo metodo è efficace solo se l'applicazione Web dispone dell'input dell'utente incluso nell'istruzione SQL. Un payload (un'istruzione SQL dannosa) può quindi essere inserito ed eseguito sul server di database.
Il seguente codice pseudo-server lato server è un semplice esempio di autenticazione che può essere vulnerabile all'iniezione SQL.
Nel codice sopra, l'attaccante può inserire un payload che modificherà l'istruzione SQL eseguita dal server di database. Esempio impostando il campo password su:
password’ OR 1=1
Questo esegue automaticamente la seguente istruzione sul server di database:
SELECT id FROM users WHERE username=’username’ AND password=’password’ OR 1=1
Cosa può fare l'iniezione SQL?
Questo è il tipo più comune di programmazione dell'iniezione. Dato che SQL è il linguaggio utilizzato per manipolare i dati archiviati in RDBMS, un attacco che utilizza la capacità di fornire ed eseguire istruzioni SQL può essere utilizzato per accedere, modificare e persino eliminare i dati.
Può dare a un utente malintenzionato la possibilità di aggirare l'autenticazione, rivelare completamente i dati archiviati nel database, contestare l'integrità dei dati e causare problemi di rifiuto, alterare i saldi e annullare le transazioni.
Come prevenire l'iniezione di SQL
Ci sono alcuni passaggi per rendere le tue app meno vulnerabili, ma prima di ognuno di questi passaggi, è meglio presumere che tutti i dati forniti dagli utenti siano pericolosi e non ti fidi di nessuno di essi. Quindi puoi considerare quanto segue:
- Disabilita l'uso di SQL dinamico: ciò significa che non vengono create query di database con l'input dell'utente. Se necessario, disinfetta, controlla ed esci dai valori prima di eseguire una query con i dati di input dell'utente.
- Sfrutta il firewall: il firewall di un'applicazione Web (software o applicazione) aiuterà a filtrare i dati dannosi.
- Acquista un software migliore: questo significa semplicemente che il programmatore sarà responsabile del controllo e dell'identificazione dei difetti.
- Crittografa o usa l'hashing delle password e di tutti gli altri dati riservati che hai, questo dovrebbe includere le stringhe di connessione.
- Evita di connetterti al tuo database con account amministratore premium a meno che non sia assolutamente necessario.
Script iniezione
Questa vulnerabilità di sicurezza è una minaccia che consente agli aggressori di iniettare codice dannoso direttamente attraverso moduli Web di siti Web basati sui dati tramite widget. Questo attacco viene spesso definito cross-site scripting o XSS. si considerano i voti و و و و و و و هي الأكثر استهدافًا لحقن Script.
Come prevenire l'iniezione di Script
I passaggi per impedire l'inserimento di script dipendono dal codice di script in uso. In generale, avrai bisogno di:
- Convalida e disinfetta l'input dell'utente (qualsiasi forma di campi di input) rimuovendo o chiudendo i contenuti potenzialmente dannosi
- Pulisci le stringhe di query negli URL
- Convalida e disinfetta tutte le forme di dati, array e oggetti prima dell'esecuzione nel server
Conclusione
In poche parole, prevenire è meglio che curare. Con i nuovi aggiornamenti tecnologici, ci sono più minacce per i nostri sistemi. Per essere sempre al passo con le cose, è importante disporre delle patch e degli aggiornamenti più recenti e mantenere le migliori pratiche. Ciò rende difficile cadere vittima di questi attacchi dannosi.





