al giorno d'oggi è possibile leggere molto sul codice di iniezione, exploit, buffer, stack e overflow ecc. Che portano all'iniezione e all'esecuzione del codice. Mi chiedo che cosa di questa roba sia rilevante per Java.È possibile l'iniezione di codice in Java?
Lo so, non ci sono puntatori nel linguaggio Java. Ma la JVM non organizza i dati in cumuli e/o pile? So che non esiste alcuna funzione eval (come in PHP), quindi non puoi usare facilmente un input come codice Java. Non sono sicuro di cosa sta succedendo a livello di codice byte.
Penso che XSS sia possibile, ad esempio in un'applicazione Java EE, quando nessun input viene filtrato. Ma non è più un'iniezione JavaScript, perché il codice inserito viene eseguito nel browser e non nella JVM?
Quindi quali iniezioni di codice sono possibili con java e quali no? Ed è vero anche per altri linguaggi di piattaforma Java?
Grazie in anticipo.
L'osservazione di efficienza non sembra terribilmente rilevante in questo contesto, l'iniezione di codice non ha necessariamente bisogno di essere efficiente. La maggior parte degli exploit non richiede prestazioni elevate ... Il punto è che non molte app fanno la cosa "accetta codice, compila, eseguilo", ma quelle che lo fanno sarebbero vulnerabili. – sleske
"Se i compilatori Java vengono esposti come servizi di libreria leggeri": beh, lo sono già (controlla javax.tools.JavaCompiler, http://java.sun.com/javase/6/docs/api/javax/tools /JavaCompiler.html). Ma ancora una volta, perché l'iniezione di codice funzioni, l'app sotto attacco deve * usare * JavaCompiler, che per fortuna no. – sleske
-1 perché la discussione sulle vulnerabilità è piuttosto confusa ... – sleske