<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet title="XSL formatting" type="text/xsl" href="/atom.xsl" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
<title>Il blog sull'informatica</title>
<link rel="self" type="application/atom+xml" href="http://nazarenolatella.myblog.it/atom.xml"/>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/" />
<subtitle>L'informatica vista da ogni prospettiva</subtitle>
<updated>2012-02-23T10:21:07+01:00</updated>
<rights>All Rights Reserved blogSpirit</rights>
<generator uri="http://admin.blog.virgilio.it/admin/" version="6.0">MyBlog</generator>
<id>http://nazarenolatella.myblog.it/</id>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>SHA-1, questo sconosciuto...</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2008/12/23/sha-1-questo-sconosciuto.html" />
<id>tag:nazarenolatella.myblog.it,2008-12-23:1674094</id>
<updated>2012-02-23T10:18:39+01:00</updated>
<published>2012-02-23T10:18:39+01:00</published>
<category term="Crittografia" scheme="http://www.blogspirit.com/ns/types#category" />
<summary>  Usando continuamente lo SHA-1 come algoritmo di cifratura per le password...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Usando continuamente lo SHA-1 come algoritmo di cifratura per le password salvate in MySQL, ho deciso di capire meglio come funziona e qual è la logica secondo la quale vengono creati i digest (impronte). Infatti, lo SHA-1 (acronimo di Secure Hash Algorithm), è il tipico esempio di algoritmo di cifratura one-way, ovvero non reversibile. Ciò significa che una volta cifrato il messaggio, non deve essere possibile dal punto di vista computazionale risalire al testo in chiaro. Nonostante questo, lo SHA-1 presenta comunque delle vulnerabilità: recentemente è stato infatti scoperto un attacco basato sulla crittoanalisi in grado di generare facilmente delle collisioni (sono proprio le collisioni il tallone di Achille di tutti gli algoritmi di cifratura one-way). Nella fattispecie, si ha una collisione quando due testi in chiaro producono lo stesso digest, compromettendo quindi in tutto o in parte la sicurezza delle informazioni criptate.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Fatta questa breve premessa, vediamo più da vicino il meccanismo utilizzato dallo SHA-1 per cifrare i messaggi.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Supponiamo che la stringa che si vuole cifrare abbia dimensione (in bit) inferiore a 2^64. In questo caso sarà necessario effettuare del padding (ovvero del riempimento), in modo da rendere la lunghezza L del messaggio espanso un multiplo intero di 512 bit (Nx512).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Il padding avviene nel seguente modo: si aggiunge in coda alla sequenza di bit che identifica il messaggio cifrato un bit pari a 1, diversi bit pari a 0 e due word da 64 bit ciascuna (128 bit in tutto). Esse servono proprio a rappresentare la lunghezza L del messaggio prima che su di esso venga effettuato del riempimento. Ma andiamo per ordine, supponiamo che il messaggio da cifrare sia identificato dalla seguente stringa di bit:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;00010001 11001100 111001101 11110011 11101111&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;come si può facilmente notare, la lunghezza L della sequenza di bit è pari a 40 (L = 40). Poichè tale lunghezza è inferiore a 2^64 bit, allora devo usare del padding.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;1) Aggiungo un bit pari a 1 in coda alla sequenza di bit sopra riportata:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;00010001 11001100 111001101 11110011 11101111&lt;/span&gt; &lt;span style=&quot;color: #ff6600; font-size: small;&quot;&gt;1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;2) Aggiungo tanti bit pari a 0 quanti ne servono per ottenere una dimensione pari a 448 bit (448 - 41 = 407 zeri), in modo tale da avere, successivamente all'aggiunta delle due word da 128 bit complessivi, una lunghezza del messaggio espanso pari a 512 bit (dimensione usata appositamente per rendere più esplicativo l'esempio).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;00010001 11001100 111001101 11110011 11101111&lt;/span&gt; &lt;span style=&quot;color: #ff6600; font-size: small;&quot;&gt;10000000 00000000 00000000 00000000 &lt;span style=&quot;color: #000000;&quot;&gt;ecc.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;3) Creo le due word da 64 bit ciascuna. Se la dimensione del messaggio (ovvero L) è inferiore a 2^32 bit, la prima word sarà costituita da 64 bit pari a 0. La seconda word, invece, è la conversione in binario del numero intero 40, che è proprio la lunghezza L. Quindi avrò:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333399; font-size: small;&quot;&gt;00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt; &lt;span style=&quot;font-size: medium;&quot;&gt;prima word;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333399; font-size: small;&quot;&gt;00000000 00000000 00000000 00000000 00000000 00000000 00000000 00101000&lt;/span&gt; &lt;span style=&quot;font-size: medium;&quot;&gt;seconda word.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Una volta che il padding verrà completato, il testo espanso ci apparirà nel modo seguente:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;00010001 11001100 111001101 11110011 11101111&lt;/span&gt; &lt;span style=&quot;color: #ff6600; font-size: small;&quot;&gt;10000000 00000000 00000000 00000000 &lt;span style=&quot;color: #000000;&quot;&gt;ecc...&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #333399; font-size: small;&quot;&gt;00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000&lt;/span&gt; &lt;span style=&quot;color: #333399; font-size: small;&quot;&gt;00000000 00000000 00000000 00000000 00000000 00000000 00000000 00101000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Bene, supponiamo ora che il messaggio espanso abbia una dimensione che sia un multiplo di 512 bit. Esso verrà quindi suddiviso in Mn&lt;/span&gt; &lt;span style=&quot;font-size: medium;&quot;&gt;(leggasi M con n, dove n è il pedice) blocchi da 512 bit ciascuno. Tali blocchi andranno in ingresso ad una funzione F, il cui funzionamento verrà descritto più avanti. Occorre notare che la prima funzione F, quella cioè relativa al blocco M1, riceverà in ingresso 5 word da 32 bit ciascuna (160 bit in tutto) appartenenti ad un IV (vettore di inizializzazione), che chiameremo h0, h1, h2, h3 ed h4.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;In particolare, esse vengono inizializzate ai seguenti valori (in esadecimale):&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;h&lt;sub&gt;0&lt;/sub&gt;&lt;/span&gt; &lt;span style=&quot;font-size: small;&quot;&gt;= 67452301&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;h&lt;sub&gt;1&lt;/sub&gt; = EFCDAB89&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;h&lt;sub&gt;2&lt;/sub&gt; = 98BADCFE&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;h&lt;sub&gt;3&lt;/sub&gt; = 10325476&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;h&lt;sub&gt;4&lt;/sub&gt; = C3D2E1F0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Vediamo come appare lo schema di cifratura dello SHA-1:&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/01/01/1484825247.JPG&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-586571&quot; style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; src=&quot;http://nazarenolatella.myblog.it/media/01/01/46002134.2.JPG&quot; alt=&quot;SHA-1.JPG&quot; name=&quot;media-586571&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Come potete notare, la prima funzione F (da sinistra) riceve in ingresso M1 e l'IV, la seconda riceve in ingresso M2 ed il risultato della somma tra l'IV e l'output della prima funzione F, generando H1 e con questa logica vengono generati H2,H3, H4, fino ad arrivare ad Hn, ovvero il digest vero e proprio (da 160 bit).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ma cosa fa effettivamente F? Per capirlo osserviamo il seguente schema che si riferisce al primo blocco, ovvero M1:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/00/02/1512705665.JPG&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-590150&quot; style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; src=&quot;http://nazarenolatella.myblog.it/media/00/02/1621403321.JPG&quot; alt=&quot;Sha-1-2.JPG&quot; name=&quot;media-590150&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Il blocco M1 viene suddiviso in 16 blocchetti w (da 0 a 15). Poichè però la funzione F consta di 80 iterazioni, i 64 blocchetti rimanenti (80 in tutto) vengono generati nel modo seguente:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;w[t] = (w[t-3] XOR w[t-8] XOR w[t-14] XOR w[t-16]) &amp;lt;&amp;lt; 1 con 16&amp;lt;=t&amp;lt;=79&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;dove &amp;lt;&amp;lt; 1 rappresenta uno shift verso sinistra del risultato ottenuto (ed è proprio questa l'unica differenza esistente tra lo SHA, altrimenti conosciuto come SHA-0, e lo SHA-1).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ogni iterazione riceve in ingresso le word a, b, c, d, ed e (ovviamente coincidenti con h0, h1, h2, h3 ed h4 per la prima iterazione), il blocco w[t] ed una costante additiva Kt, con Kt inizializzata nel modo seguente:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Kt = 5A827999&lt;/span&gt;&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;per 0 &amp;lt;= t &amp;lt;= 19&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Kt = 6ED9EBA1 per 20 &amp;lt;= t &amp;lt;= 39&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Kt = 8F1BBCDC per 40 &amp;lt;= t &amp;lt;= 59&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Kt = CA62C1D6 per 60 &amp;lt;= t &amp;lt;= 79&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ad ogni iterazione viene generata una variabile temporanea TEMP, dove TEMP = (a &amp;lt;&amp;lt; 5) + f + e + Kt + w[t] e la funzione f, che dipende da t, ovvero dall'iterazione considerata e dalle word b, c, ed e, sarà data da:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;(b AND c) OR ((NOT b) AND d) per 0 &amp;lt;= t &amp;lt;= 19&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;b XOR c XOR d per 20 &amp;lt;= t &amp;lt;= 39&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;(b AND c) OR (b AND d) OR (c AND d) per 40 &amp;lt;= t &amp;lt;= 59&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;b XOR c XOR d per 60 &amp;lt;= t &amp;lt;= 79&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Una volta creata la variabile TEMP, l'iterazione effettuerà le seguenti operazioni di sostituzione e di shifting:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;1) la variabile TEMP viene salvata in a;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;2)&lt;/span&gt; &lt;span style=&quot;font-size: medium;&quot;&gt;la word a viene salvata in b;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;3) la word b viene salvata in c e successivamente c viene spostata di 30 posizioni verso sinistra;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;4) la word c viene salvata in d;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;5) la word d viene salvata in e.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Le word così ottenute andranno in ingresso all'iterazione immediatamente successiva.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Inutile dirvi che comprendere a pieno tale algoritmo di cifratura non è banale come non è per niente semplice cercare di spiegarlo in modo chiaro. Spero comunque di esservi stato d'aiuto. A presto.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>Securimage: captcha PHP semplice ed efficace</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2012/02/12/secureimage-captcha-php-semplice-ed-efficace.html" />
<id>tag:nazarenolatella.myblog.it,2012-02-12:4285613</id>
<updated>2012-02-12T19:03:52+01:00</updated>
<published>2012-02-13T10:00:00+01:00</published>
<category term="Web Editing" scheme="http://www.blogspirit.com/ns/types#category" />
<category term="captcha" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="form" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="input" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="spammer" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="bot" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="securimage" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="image" scheme="http://www.blogspirit.com/ns/types#tag" />
<summary>  Qualunque   form HTML   che si rispetti, deve garantire delle contromisure...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Qualunque &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;form HTML&lt;/span&gt;&lt;/strong&gt; che si rispetti, deve garantire delle contromisure valide contro gli &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;spammer bot&lt;/span&gt;&lt;/strong&gt;, avvelendosi di un sistema &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;captcha&lt;/span&gt;&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Dopo aver fatto un breve &quot;giro in rete&quot; mi sono imbattuto in &lt;a href=&quot;http://www.phpcaptcha.org/&quot; target=&quot;_blank&quot;&gt;questo&lt;/a&gt; prodotto (open source).&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/02/00/1509971954.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-1899879&quot; style=&quot;margin: 0.7em 0;&quot; title=&quot;&quot; src=&quot;http://nazarenolatella.myblog.it/media/02/00/1575258645.jpg&quot; alt=&quot;securimage.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Diciamo che le operazioni di implementazione e quelle di personalizzazione sono estremamente semplici ed intuitive, basta leggere questa &lt;a href=&quot;http://www.phpcaptcha.org/documentation/quickstart-guide/&quot; target=&quot;_blank&quot;&gt;Quickstart Guide&lt;/a&gt; per comprendere appieno il funzionamento del tool in questione.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Non vi resta che includere i file &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;PHP&lt;/span&gt;&lt;/strong&gt; richesti, inserire l'apposito campo di &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;input&lt;/span&gt;&lt;/strong&gt; nel vostro form&lt;/span&gt; &lt;span style=&quot;font-size: medium;&quot;&gt;ed il gioco è fatto.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Alla prossima.&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>Pulsante &quot;like&quot; di Facebook: alcuni trucchetti utili</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2012/02/08/pulsante-like-di-facebook-alcuni-trucchetti-utili.html" />
<id>tag:nazarenolatella.myblog.it,2012-02-08:4269622</id>
<updated>2012-02-08T09:20:27+01:00</updated>
<published>2012-02-08T09:20:27+01:00</published>
<category term="Web Editing" scheme="http://www.blogspirit.com/ns/types#category" />
<category term="like" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="facebook" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="comment" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="pop-up" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="javascript" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="ciss" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="!important" scheme="http://www.blogspirit.com/ns/types#tag" />
<summary>  Ormai il pulsante &quot;like&quot; di Facebook è diventato una moda ed in quanto tale...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ormai il pulsante &quot;like&quot; di Facebook è diventato una moda ed in quanto tale sono sempre di più i siti che usufruiscono di questo gadget. L'inserimento del suddetto pulsante all'interno del codice &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;HTML&lt;/span&gt;&lt;/strong&gt; del proprio sito è praticamente un gioco da ragazzi (basta copiare ed incollare il sorgente autogenerato mediante &lt;a href=&quot;https://developers.facebook.com/docs/reference/plugins/like/&quot; target=&quot;_blank&quot;&gt;questa&lt;/a&gt; interfaccia user-friendly). I problemi, però, iniziano quando si vuole customizzare pesantemente il &quot;like&quot; di Facebook, ad esempio implementando un evento &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;on click&lt;/span&gt;&lt;/strong&gt; oppure &quot;nascondendo&quot; la barra dei commenti.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/01/00/2222437479.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-1894324&quot; style=&quot;margin: 0.7em 0;&quot; title=&quot;&quot; src=&quot;http://nazarenolatella.myblog.it/media/01/00/646315198.jpg&quot; alt=&quot;fb-like.jpg&quot; width=&quot;115&quot; height=&quot;73&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Nel primo caso è sufficiente utilizzare un codice &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;javascript&lt;/span&gt;&lt;/strong&gt; simile al seguente&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;window.fbAsyncInit = function() {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;FB.Event.subscribe('edge.create', function(href, widget) {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;//action&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;});&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;};&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;//--&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;/strong&gt;Se ad esempio si volesse implementare l'apertura di una finestra &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;pop-up&lt;/span&gt;&lt;/strong&gt; immediatamente dopo il click sul &quot;like&quot;, il codice diventerebbe:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;window.fbAsyncInit = function() {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;FB.Event.subscribe('edge.create', function(href, widget) {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;window.open('vostraurl', '_blank');&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;});&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;};&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;//--&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;/strong&gt;Nel caso in cui, invece, si volesse nascondere la barra dei commenti, è necessario lavorare di &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;CSS&lt;/span&gt;&lt;/strong&gt;. Nella fattispecie, occorre attribuire un &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;display:none&lt;/span&gt;&lt;/strong&gt; alla classe &lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.fb_edge_widget_with_comment, &lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;utilizzando la keyword &lt;strong&gt;&lt;span style=&quot;color: #ff0000; font-size: small;&quot;&gt;!important&lt;/span&gt;&lt;/strong&gt; per evitare possibili sovrascritture di tali impostazioni all'interno della pagina &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;HTML&lt;/span&gt;&lt;/strong&gt; (attraverso il tag &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;style&lt;/span&gt;&lt;/strong&gt;):&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;display: none !important;}&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;/strong&gt;Ed il gioco è fatto.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;A presto.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>Configurazione del firewall embedded di un Cisco 827v4</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2011/11/03/configurazione-del-firewall-embedded-di-un-cisco-827v4.html" />
<id>tag:nazarenolatella.myblog.it,2011-11-03:3983104</id>
<updated>2012-02-06T10:53:04+01:00</updated>
<published>2012-02-06T10:53:04+01:00</published>
<category term="Sicurezza" scheme="http://www.blogspirit.com/ns/types#category" />
<category term="cisco" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="827" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="800 series" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="firewall embedded" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="ip inspect" scheme="http://www.blogspirit.com/ns/types#tag" />
<summary>  Affinchè si possa realizzare la configurazione che sto per descrivere, è...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Affinchè si possa realizzare la configurazione che sto per descrivere, è necessario che la &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;IOS&lt;/span&gt;&lt;/strong&gt; del nostro &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Cisco 827v4&lt;/span&gt;&lt;/strong&gt; supporti le funzionalità tipiche di un firewall (anche se MOLTO ridotte).&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/02/02/2938368928.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-1794356&quot; style=&quot;margin: 0.7em 0;&quot; title=&quot;&quot; src=&quot;http://nazarenolatella.myblog.it/media/02/02/2769808781.jpg&quot; alt=&quot;827.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Nello specifico, il nome della &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;IOS&lt;/span&gt;&lt;/strong&gt; deve contenere la sigla &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;o&lt;/span&gt;&lt;/strong&gt; oppure &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;o3&lt;/span&gt;&lt;/strong&gt;, dove &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;o&lt;/span&gt;&lt;/strong&gt; sta appunto per firewall ed &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;o3&lt;/span&gt;&lt;/strong&gt; sta per firewall/IDS. Nel mio caso, posso dirvi che ho a disposizione una &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;IOS&lt;/span&gt;&lt;/strong&gt; che supporta solo il firewall, quindi tale configurazione si limita a ciò che ho potuto effettivamente testare.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Per prima cosa accediamo alla modalità &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;enable&lt;/span&gt;&lt;/strong&gt; del router:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter&amp;gt;ena&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Password:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter#conf t&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;entriamo nel menù di configurazione:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter#conf t&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;e creiamo le policy del nostro firewall:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;strong&gt;NightRouter(config)#ip inspect name fw http&lt;br /&gt;NightRouter(config)#ip inspect name fw ftp&lt;br /&gt;NightRouter(config)#ip inspect name fw icmp&lt;br /&gt;NightRouter(config)#ip inspect name fw smtp&lt;br /&gt;NightRouter(config)#ip inspect name fw fragment&lt;br /&gt;NightRouter(config)#ip inspect name fw rcmd&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;in questo modo, il nostro router terrà d'occhio i pacchetti relativi ai protocolli specificati. Esistono altri protocolli che possono essere monitorati, basta lanciare il comando:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter(config)#ip inspect name &amp;lt;nomepolicy&amp;gt; ?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;per averne una lista completa. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;In particolare, l'output di tale comando sarà il seguente:&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;cuseeme&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CUSeeMe Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; fragment&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IP fragment inspection&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; ftp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Transfer Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; h323&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H.323 Protocol (e.g, MS NetMeeting, Intel Video Phone)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; http&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; icmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICMP Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; netshow&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft NetShow Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; rcmd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R commands (r-exec, r-login, r-sh)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; realaudio&amp;nbsp;&amp;nbsp;&amp;nbsp; Real Audio Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; rpc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Remote Prodedure Call Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; rtsp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Real Time Streaming Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; sip&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIP Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; skinny&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Skinny Client Control Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; smtp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Simple Mail Transfer Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; sqlnet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL Net Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; streamworks&amp;nbsp; StreamWorks Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transmission Control Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; tftp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TFTP Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; udp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; User Datagram Protocol&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; vdolive&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VDOLive Protocol&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Successivamente, si dovrà associare la policy di firewalling all'interfaccia &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;dia0&lt;/span&gt;&lt;/strong&gt;, ovvero quella direttamente esposta su Internet.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Il comando da utilizzare è il seguente:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter(config)#int dia0&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter(config-if)#ip inspect fw in&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Infine, salviamo la configurazione con il classico&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;copy run start&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter(config)#exit&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;NightRouter#copy run start&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ed abbiamo finito.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;A presto.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;NB: dai test che ho effettuato sembrerebbe che il router non riesca a gestire correttamente una grande mole di traffico dopo aver abilitato il firewall. Proprio per questo motivo, vi consiglio di non ispezionare il &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;payload&lt;/span&gt;&lt;/strong&gt; dei pacchetti ma soltanto l'&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;header&lt;/span&gt;&lt;/strong&gt; degli stessi, evitando ad esempio delle policy del tipo:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;strong&gt;NightRouter(config)#ip inspect name fw tcp&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;oppure&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;strong&gt;NightRouter(config)#ip inspect name fw udp&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>Javascript e catch del tasto &quot;enter&quot;</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2012/02/01/javascript-e-catch-del-tasto-enter.html" />
<id>tag:nazarenolatella.myblog.it,2012-02-01:4251812</id>
<updated>2012-02-01T11:00:04+01:00</updated>
<published>2012-02-01T11:00:04+01:00</published>
<category term="Web Editing" scheme="http://www.blogspirit.com/ns/types#category" />
<category term="javascript" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="enter" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="keypress" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="submit" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="form" scheme="http://www.blogspirit.com/ns/types#tag" />
<summary>  Ecco una semplice funzione   Javascript   che consente di ottenere l'invio...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ecco una semplice funzione &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Javascript&lt;/span&gt;&lt;/strong&gt; che consente di ottenere l'invio del contenuto di un campo di input semplicemente pigiando il tasto &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;enter&lt;/span&gt;&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; function onEnter(evt, frm) &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var keyCode = null;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( evt.which ) &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; keyCode = evt.which;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if( evt.keyCode ) &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; keyCode = evt.keyCode;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( 13 == keyCode ) &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; document.searchForm.searchbutton.click();&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/00/02/3953684360.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-1885642&quot; style=&quot;margin: 0.7em 0;&quot; title=&quot;&quot; src=&quot;http://nazarenolatella.myblog.it/media/00/02/2643387354.jpg&quot; alt=&quot;javascript11.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Il codice &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;HTML&lt;/span&gt;&lt;/strong&gt; ad essa associato è il seguente:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;form id=&quot;searchForm&quot; name=&quot;searchForm&quot; class=&quot;searchform&quot;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input id=&quot;input&quot; name=&quot;input&quot; type=&quot;text&quot; value=&quot;Search...&quot; onFocus=&quot;if (this.value == 'Search...') {this.value = '';}&quot; onBlur=&quot;if (this.value == '') {this.value = 'Search...';}&quot; onKeyPress=&quot;return onEnter(event,this.form)&quot;/&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input id=&quot;searchbutton&quot; name=&quot;searchbutton&quot; class=&quot;searchbutton&quot; type=&quot;button&quot; value=&quot;a&quot; onClick=&quot;document.forms['searchForm'].submit()&quot;/&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Alla prossima.&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>Snort 2.9.0.5: variabili FILE_DATA_PORTS e SIP_SERVERS sconosciute</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2012/01/29/snort-2-9-0-5-e-le-variabili-file-data-ports-e-sip-servers.html" />
<id>tag:nazarenolatella.myblog.it,2012-01-29:4244918</id>
<updated>2012-01-29T10:37:47+01:00</updated>
<published>2012-01-31T10:00:00+01:00</published>
<category term="Sicurezza" scheme="http://www.blogspirit.com/ns/types#category" />
<category term="snort" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="rule update" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="error" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="fail" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="sip_servers" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="file_data_ports" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="variables" scheme="http://www.blogspirit.com/ns/types#tag" />
<summary>  Questa mattina mi sono accorto che su tutte le mie macchine   snort   era...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Questa mattina mi sono accorto che su tutte le mie macchine &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;snort&lt;/span&gt;&lt;/strong&gt; era stoppato. Provando a lanciare un&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt; service restart&lt;/span&gt;&lt;/strong&gt; il risultato era sempre lo stesso: &lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;fail&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/00/01/378254386.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-1882181&quot; style=&quot;margin: 0.7em 0;&quot; title=&quot;&quot; src=&quot;http://nazarenolatella.myblog.it/media/00/01/157206553.jpg&quot; alt=&quot;snort_rules.jpg&quot; width=&quot;139&quot; height=&quot;128&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Indi per cui ho deciso di visualizzare l'output del&amp;nbsp;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;syslog&lt;/span&gt;&lt;/strong&gt; per capire cosa diavolo stava succedendo. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Per farla breve, mi sono beccato una sfilza di errori del tipo:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;FATAL ERROR: /etc/snort//rules/specific-threats.rules(946) Undefined variable name: SIP_SERVERS&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;FATAL ERROR: /etc/snort//rules/specific-threats.rules(766) Undefined variable name: FILE_DATA_PORTS.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ok, mi sono detto, mancano le suddette variabili nel file di configurazione, alla fine è un problema banale e di facile soluzione. Quindi, ho aperto in scrittura il file &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;/etc/snort/snort.conf&lt;/span&gt;&lt;/strong&gt; ed ho aggiunto le seguenti direttive:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;portvar FILE_DATA_PORTS [$HTTP_PORTS]&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;subito dopo la dichiarazione della variabile &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;$HTTP_PORTS&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;var SIP_SERVERS $HOME_NET&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Dopo aver fatto ciò, ho riavviato il demone digitando&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;nightfly@nightbox:~$ sudo service snort restart&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;e tutto è tornato a funzionare alla grande.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Bye.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
<entry>
<author>
<name>nazarenolatella</name>
<uri>http://nazarenolatella.myblog.it/about.html</uri>
</author>
<title>Google Chrome: attributo z-index ignorato per gli *.swf</title>
<link rel="alternate" type="text/html" href="http://nazarenolatella.myblog.it/archive/2012/01/29/google-chrome-attributo-z-index-ignorato-per-i-gli-swf.html" />
<id>tag:nazarenolatella.myblog.it,2012-01-29:4244828</id>
<updated>2012-01-30T10:05:22+01:00</updated>
<published>2012-01-30T10:05:22+01:00</published>
<category term="Web Editing" scheme="http://www.blogspirit.com/ns/types#category" />
<category term="google chrome" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="z-index" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="html5" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="embed" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="wmode" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="transparent" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="bug" scheme="http://www.blogspirit.com/ns/types#tag" />
<category term="css" scheme="http://www.blogspirit.com/ns/types#tag" />
<summary>  L'attributo   z-index  , utilizzato nell'ambito dei fogli di stile (  CSS...</summary>
<content type="html" xml:base="http://nazarenolatella.myblog.it/">
&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;L'attributo &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;z-index&lt;/span&gt;&lt;/strong&gt;, utilizzato nell'ambito dei fogli di stile (&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;CSS&lt;/span&gt;&lt;/strong&gt;), consente di ordinare gli elementi grafici di una pagina Web secondo la coordinata spaziale &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;z&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;. &lt;span style=&quot;font-size: medium;&quot;&gt;Purtroppo però, quando si ha a che fare con degli &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;*.swf&lt;/span&gt;&lt;/strong&gt; e si utilizza &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Google Crome&lt;/span&gt;&lt;/strong&gt; come browser, l'attributo&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt; z-index&lt;/span&gt;&lt;/strong&gt; viene totalmente ignorato, ragion per cui il filmato sarà sempre posizionato &quot;più in superficie&quot; rispetto agli altri elementi.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://nazarenolatella.myblog.it/media/01/00/3378979745.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img id=&quot;media-1882132&quot; style=&quot;margin: 0.7em 0;&quot; title=&quot;&quot; src=&quot;http://nazarenolatella.myblog.it/media/01/00/2287976065.jpg&quot; alt=&quot;google_chrome_logo.jpg&quot; width=&quot;145&quot; height=&quot;103&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Inutile dire che tale comportamento &quot;anomalo&quot; non si verifica nè con &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Mozilla Firefox&lt;/span&gt;&lt;/strong&gt; nè con &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;IE8&lt;/span&gt;&lt;/strong&gt; ed &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;IE9&lt;/span&gt;&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Esiste tuttavia un workaround. Esso consiste, sostanzialmente, nell'uso dell'attributo &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;wmod&lt;/span&gt;&lt;/strong&gt; relativo al tag &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;embed&lt;/span&gt;&lt;/strong&gt;. Il valore associato all'attributo in questione dovrà essere &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;transparent&lt;/span&gt;&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Ad esempio:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;embed wmode=&quot;transparent&quot;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;/strong&gt;Inoltre, occorre inserire il seguente codice &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;HTML&lt;/span&gt;&lt;/strong&gt; tra i tag &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;object&amp;gt;&amp;lt;/object&amp;gt;&lt;/span&gt;&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Adesso anche &lt;strong&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Google Chrome&lt;/span&gt;&lt;/strong&gt; sarà in grado di visualizzare gli elementi grafici della pagina nel giusto ordine di profondità.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;A presto.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
</content>
</entry>
</feed>
