Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
HTML, Javascript, CSS, DHTML, XHTML
Regular expression
martedì 18 novembre 2008 - 00.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 18 nov 2008 - 00:03
Un aiutino, ho trovato un post in cui si fa riferimento ad un ipotetico crash di alcuni browser con stringhe di questo tipo
<SCRIPT LANGUAGE="JavaScript"><!--
var re = new RegExp("[[**]] [[**]] [[**]] [[**]]... [[**]]");
</script>
▪ Heap overflow
▪ Can overflow 2 bytes for each malformed “expression”
▪ Up to 3970 total bytes can be overflown
secondo voi perchè??
Grazie
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 18 nov 2008 - 12:30
Ciao,
forse c'è un bug nel costruttore della Regex? potrebbe anche essere anche se non ne ho mai sentito parlare.
Puoi postare il link dove hai preso queste informazioni? Grazie.
ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
ven 28 nov 2008 - 14:41
La descrizione del bug è questa
The above causes a heap overflow which overflows two bytes for each malformed expression. Up to 3970 bytes can be overflown.
This vulnerability existed in both Safari 2, Safari 3, and Safari for the iPhone.
Secondo te cosa vorrebbe dire??
Mi spiego, vorrei capire perchè si verifica questo problema ....
Grazie mille
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 28 nov 2008 - 15:32
>The above causes a heap overflow which overflows two bytes for
>each malformed expression. Up to 3970 bytes can be overflown.
>This vulnerability existed in both Safari 2, Safari 3, and Safari
>for the iPhone.
ok allora è ufficiale, puoi postare il link da dove hai preso queste info? Grazie.
>te cosa vorrebbe dire??
>Mi spiego, vorrei capire perchè si verifica questo problema ....
allora il fatto è che probabilmente la pagina di qualche male intenzionato potrebbe contenere il codice javascript che sfrutta questo bug e cercare di mettere qualche istruzione dannosa sullo stack (io non saprei neanche come sinceramente).
Diciamo che sono però casi estremi e soprattutto basta stare attenti ai siti che stai navigando...poi è anche vero che se è tracciato come bug, con il prossimo aggiornamento viene fixato, quindi tenendoti aggiornato il problema si risolve in poco tempo di sicuro.
Sinceramente sono molti anni che uso il pc e soprattutto internet in maniera pesante sia per lavoro che non, e non ho mai avuto nessun problema di virus, sono solo fortunato ?
potrebbe essere, certo è che non apro niente che non conosco, e sto attento a dove navigo, evitando siti che mi danno dei dubbi (tipo il link ha scritto "banca..." ma nella status bar mi dice che il link è un altro...)
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
sab 29 nov 2008 - 19:23
Purtroppo non ricordo dove ho recupereato il link!
Tornando al problema, non mi preoccupa il fatto di subire l'owerflow
vorrei invece capire perchè viene generato l'overflow, cioè cosa genera il problema a livello di codice.
Grazie mille
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 2 dic 2008 - 23:48
Nessuno sa dirmi perchè viene generato l'overflow?
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
ven 5 dic 2008 - 23:30
A livello di codice è difficile rispondere perché da come hai scritto il primo post si deduce che il problema sia all'interno della funzione RegExp che essendo anche essa interna al motore javascript del browser non è accessibile.
Il problema quindi probabilmente nasce da un errore di programmazione (non sapremo mai dove sta il bug
)
>> <SCRIPT LANGUAGE="JavaScript"><!--
>>var re = new RegExp("[[**]] [[**]] [[**]] [[**]]... [[**]]");
>></script>
Ci siamo creati un parser e lo chiamiamo re
>>▪ Heap overflow
▪>> Can overflow 2 bytes for each malformed “expression”
Puoi scrivere 2 bytes nell'heap ogni volta che parsi qualcosa con il parser definito sopra?
>>▪ Up to 3970 total bytes can be overflown
Tutto ciò che viene dopo i 3970 bytes và in overflow. Quindi se tu provi a parsare un insieme di 3972 bytes fai crashare tutto o almeno và a sovrascrivere l'heap.
Io ho provato così:
<body>
<SCRIPT LANGUAGE="JavaScript">
var re = new RegExp("[[**]] [[**]] [[**]] [[**]]... [[**]]");
var myA = new Array();
var myS = '';
var k=0;
for (k=0;k<6000;k++)
{
myA[k]='p';
myS+='p';
}
re.test(myA);
re.test(myS);
alert('completato');
</script>
</body>
ma chrome, firefox safari e iexplore hanno resistito
(iexplore a dire la verità ci ha pensato un pò su' prima di sbloccarsi)
Luigi Di Biasi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !