Spesso crediamo che l’attivazione della modalità incognito o l’utilizzo di un browser differente siano sufficienti a proteggere l’identità di chi accede ad un sito.
Purtroppo è vero in alcuni casi, ma non in tutti. (altro…)
Spesso crediamo che l’attivazione della modalità incognito o l’utilizzo di un browser differente siano sufficienti a proteggere l’identità di chi accede ad un sito.
Purtroppo è vero in alcuni casi, ma non in tutti. (altro…)
STUN (Session Traversal Utilities for NAT) è una tecnologia descritta da RFC5389 per scoprire facilmente l’indirizzo privato di un host che si trova dietro ad un filtro NAT.
Un server STUN ha lo scopo di enumerare tutti gli indirizzi privati o pubblici di un host e di permettere ad altri software di utilizzare quell’informazione. (altro…)
Fino a pochi giorni fa non mi ero reso conto di quanto internet potesse essere utile anche come supporto alla programmazione.
Tutti noi sappiamo che una ricerca su internet spesso è in grado di risolvere in maniera semplice e veloce un problema che affligge il nostro codice, magari da ore: senza reinventare la ruota tutte le volte — o per evitare di spaccarsi la testa su un problema (anche banale) già incontrato mille volte — è sufficiente quasi sempre fare una ricerca su internet e leggere un post su siti come l’ottimo Stack Overflow .
Quello che io personalmente non avevo ancora realizzato è quanto utile possano essere i siti che permettono il sandboxing del codice e il test immediato: voglio parlarvi di due di questi siti che ho iniziato a usare recentemente, nella speranza che siano utili anche a voi.
Non programmo sul web in maniera professionale, si tratta di poco di più di un hobby: quando ho iniziato mi sono rivolto verso ASP.net in maniera abbastanza naturale per poter riciclare le mie competenze in Visual Basic e C♯. Solo dopo un po’ di pratica mi sono reso conto che non avrei potuto prescindere dall’uso di JavaScript per applicazioni client-side versatili e molto pratiche da usare in un sito web.
JS può essere scritto direttamente all’interno di una delle edizioni di Visual Studio, oppure con l’apposito modulo nel IDE open source Eclipse, ma entrambi i prodotti mi danno l’idea di un cannone con cui sparare alla proverbiale zanzara; almeno per quanto concerne il mio caso di applicazioni modeste in lunghezza e complessità.
Uno strumento estremamente più utile e immediato l’ho invece trovato online: si tratta di JSFiddle un tool in cui si può direttamente editare il markup HTML, il codice Javascript e gli stili CSS e vedere immediatamente il risultato nella finestra del browser. Si tratta di un progetto un po’ più recente e meno famoso di JSBin, ma che io trovo più user-firendly.
Con questo strumento si possono salvare i frammenti di codice e condividerli. I vantaggi sono evidenti: è possible pubblicare un semplice permalink non solo al codice, ma a un esempio immediatamente eseguibile e funzionate, tutto questo su Twitter, Faceboook su blog, forum e via dicendo.
E’ uno strumento non solo utile al programmatore per farsi aiutare più semplicemente o per mettersi un po’ in mostra, ma anche alla comunità in generale in quanto consente di condividere codice e conoscenza in maniera veloce e completa. (altro…)
In principio erano i cookie: qualcuno aveva avuto l’idea di permettere al server di salvare dei dati in locale sul browser.
A parte qualche correzione di rotta per evitare problemi di sicurezza, i cookie sono sempre rimasti relativamente innocui dal punto di vista dello spazio occupato, in quanto sono limitati a 4096 byte: hai voglia a riempire una partizione utente a botte di file di 4k…
Con HTML5 qualcuno ha pensato di aggiungere il Web Storage a JavaScript per la gestione di una serie di coppie chiave-valore da registrare lato client. Anche le analisi delle possibili implicazioni di sicurezza fatte dal W3C non prendono in considerazione la possibilità che venga riempito lo spazio libero di una partizione.
(altro…)È stata percorsa molta strada dal primo worm di sendmail, dai primi virus o dai primi spyware.
Come illustrato da Mikko Hypponen, adesso il malware viene scritto essenzialmente per tre ragioni: danaro, attivismo politico e attacchi tra Stati.
VRT ha pubblicato un’interessantissima analisi di un malware ben nidificato. Si tratta di un exploit che sfrutta un integer overflow per eseguire del codice arbitrario utilizzando un’immagine TIFF creata ad arte codificata base64, che viene creata al momento da un codice JavaScript hex encoded in altro codice JavaScript che è incorporato in un XML compresso a sua volta all’interno di un file PDF.
Ci si potrebbe chiedere come mai sia lecito incorporare codice JavaScript in un XML a sua volta incorporato in un formato di definizione della pagina. Purtroppo il formato PDF è nato come un’idea di Adobe di rendere ubiquo il PostScript, ma ha raccolto a bordo negli anni ogni tipo di contenuto. Un’idea, che poteva sembrare interessante ad alcuni, si è rivelata una pericolosa breccia nella sicurezza di moltissimi computer grazie a visualizzatori scritti non esattamente con la sicurezza come luce guida.
Questo è il motivo per cui molti enti della nostra Pubblica Amministrazione accettano che vengano caricati solamente PDF/A.
Questo piccolo esempio dimostra che il malware si può annidare in ogni tipo di file il cui sistema di visualizzazione è prono ad attacchi o contiene vulnerabilità. È, quindi, sempre opportuno aggiornare i vari programmi di visualizzazione e i sistemi antivirus perché i disagi teorici che potrebbero conseguire da un aggiornamento di versione sono sicuramente inferiori ai problemi concreti che derivano da un visualizzatore di cui sono note le vulnerabilità.
spider.io ha scoperto una feature di Internet Explorer dalla versione 6 alla versione 10 che permette di tracciare i movimenti del mouse.
Con un semplice programma JavaScript è possibile sapere la posizione del mouse sullo schermo, anche se questo si trova al di fuori della finestra di Explorer o se il programma è ridotto a icona.
La feature potrebbe sembrare utile o innocua, ma bisogna considerare che alcuni sistemi di sicurezza, come Kaspersky, o la funzione integrata della tastiera virtuale di Windows vengono suggeriti come metodi per evitare che i keylogger riescano a carpire le password o altri dati sensibili.
Questi metodi potrebbero essere vanificati da alcune righe JavaScript che si possono vedere in azione qui (ovviamente funziona solo con Internet Explorer).
Contattata da spider.io, Microsoft ha risposto che non ritiene opportuno sistemare il problema. (via Naked Security)
Come sviluppatore ho una decisa avversione verso il sistema di computo del tempo attualmente in uso.
Utilizzare cicli nidificati con periodi variabili da 7 a 24 a [28,29,30,31] a [59,60,61] a [365,366] unità per contare la medesima cosa non è esattamente quello che fa felice un programmatore. Se poi si aggiunge un lunedì festivo che va innanzi e indietro nel calendario a seconda (letteralmente) di come gli gira la luna, abbiamo completato il teatrino.
Nonostante i linguaggi attuali abbiano ricche funzioni di libreria per limitare i danni di questo metodo di computo del tempo figlio di tradizioni antiche mai cambiate, c’è ancora qualcuno che ne cade vittima:
Come tutti sappiamo che 19 Zellini fanno una Falce e che 17 Falci fanno un Galeone, sappiamo anche che 24 ore fanno un giorno, quindi il conto alla rovescia di cui sopra dovrebbe essere scritto (magari con un font più leggibile) -5g 3h eccetera.
Mathieu ‘P01’ Henri ha realizzato un programma di sintesi vocale in meno di 1024 byte di sorgente JavaScript.
Ovviamente l’output non ha la profondità della voce di HAL 9000 e i fonemi che il programma riesce a sintetizzare sono limitati, ma il risultato è intrigante se confrontato con la dimensione del codice.
Si può provare il risultato su questa pagina, scrivere il testo da leggere al posto di quello che appare; il sorgente è qui. (via BoingBoing)
function(a,b,c,d,e){return d+=c, e=a|b<<d,d<0|a&b<<d&&(a=e= parseInt((a|b<<c).toString(d=32) .replace(/v/,""),d),b=new Date%2?1:3), [a,b,d,e]}
Questa funzione JavaScript di 140 caratteri scritta da Martin Kleppe è un piccolo Tetris giocabile.
Il codice è disponibile in versione commentata per poter capire cosa c’è dietro quei 140 byte.
Questo progetto fa parte di 140byt.es, un sito che promuove la creazione di frammenti JavaScript funzionanti che possono stare in un twit. (via Slashdot)
Greg James, Barry Silverman e Brian Silverman hanno creato una simulazione visuale del funzionamento del celebre MOS 6502, cuore di molti computer storici tra i quali Apple ][, Vic 20, Commodore 64, Atari 2600 e Atari 800.
La simulazione in JavaScript è in grado di girare sulla maggior parte dei browser, tranne alcune installazioni di Internet Explorer.
Entro breve sarà disponibile anche una versione in Python, che sarà più utile per chi vorrà creare progetti simili nel lungo termine. Lo scopo del gruppo è, infatti, la conservazione storica dei dati relativi ai vecchi chip, in quanto il software è una simulazione esatta del chip, non una sua emulazione.
Vale la pena di segnalare anche un’interessatene documento con le slide di presentazione che contiene anche alcune foto curiose. (via BoingBoing)