<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AntonelloCicchese.com &#187; Apache</title>
	<atom:link href="http://www.antonellocicchese.com/category/webmaster/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antonellocicchese.com</link>
	<description></description>
	<lastBuildDate>Wed, 28 Apr 2010 20:19:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Regular expressions vol.1</title>
		<link>http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/</link>
		<comments>http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/#comments</comments>
		<pubDate>Sat, 24 Mar 2007 15:58:40 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/</guid>
		<description><![CDATA[Validazione email &#8211; Email validation:
^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*(.[a-z]{2,3})$
 Parsing file di log di Apache &#8211; Apache log parsing:
(\d+\.\d+\.\d+\.\d+) (-&#124;\w*) (-&#124;\w*) \[(\d+\/\w+\/\d+):(\d+:\d+:\d+) -(\d\d\d\d)\] "([^"]*)" (\d+) (-&#124;\d+) "([^"]*)" "(.*)"\s*\Z
se utilizzate python è estremamente utile compilare l&#8217;espressione regolare che ho appena scritto in questo modo:
myregex = re.compile('(?P\d+\.\d+\.\d+\.\d+) (?P-&#124;\w*) (?P-&#124;\w*) \[(?P\d+\/\w+\/\d+):(?P\d+:\d+:\d+) -(?P\d\d\d\d)\] "(?P[^"]*)" (?P\d+) (?P-&#124;\d+) "(?P[^"]*)" "(?P.*)"\s*\Z')
in questo modo utilizzando questo codice:
log [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Validazione email &#8211; Email validation:</strong><br />
<code>^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*(.[a-z]{2,3})$</code></p>
<p><strong> Parsing file di log di Apache &#8211; Apache log parsing:</strong><br />
<code>(\d+\.\d+\.\d+\.\d+) (-|\w*) (-|\w*) \[(\d+\/\w+\/\d+):(\d+:\d+:\d+) -(\d\d\d\d)\] "([^"]*)" (\d+) (-|\d+) "([^"]*)" "(.*)"\s*\Z</code></p>
<p>se utilizzate python è estremamente utile compilare l&#8217;espressione regolare che ho appena scritto in questo modo:<br />
<code>myregex = re.compile('(?P<ip>\d+\.\d+\.\d+\.\d+) (?P<identd>-|\w*) (?P<auth>-|\w*) \[(?P<date>\d+\/\w+\/\d+):(?P<time>\d+:\d+:\d+) -(?P<timezone>\d\d\d\d)\] "(?P<request>[^"]*)" (?P<response>\d+) (?P<byte>-|\d+) "(?P<referrer>[^"]*)" "(?P<browser>.*)"\s*\Z')</browser></referrer></byte></response></request></timezone></time></date></auth></identd></ip></code></p>
<p>in questo modo utilizzando questo codice:</p>
<pre lang="python">log = self.regex.match(row)
log_line = log.groupdict()</pre>
<p>nella variabile log_line otterrete un dizionario contenente come chiavi i valori che avete inserito nella fase di compilazione come ?P<nome> e come valore la relativa sottostringa, ad esempio log_line['ip'] = valore ip .</nome></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Protezione dagli HotLink</title>
		<link>http://www.antonellocicchese.com/2006/12/02/protezione-hotlink/</link>
		<comments>http://www.antonellocicchese.com/2006/12/02/protezione-hotlink/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 22:21:05 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/12/02/protezione-hotlink/</guid>
		<description><![CDATA[Il furto di banda o hotlink è un problema che affligge tutti coloro i quali gestiscono almeno un sito web, e si tratta di quella esecrabile pratica adottata da utenti della rete e da altri webmaster di inserire nelle pagine dei loro siti, blog, forum e quant&#8217;altro le immagini del nostro sito linkandole direttamente senza [...]]]></description>
			<content:encoded><![CDATA[<p>Il <strong>furto di banda</strong> o <strong>hotlink</strong> è un problema che affligge tutti coloro i quali gestiscono almeno un sito web, e si tratta di quella esecrabile pratica adottata da utenti della rete e da altri webmaster di inserire nelle pagine dei loro siti, blog, forum e quant&#8217;altro le immagini del nostro sito linkandole direttamente senza scaricarle.</p>
<p>In questo modo praticamente ad ogni richiesta della loro pagina web viene consumata la nostra banda per scaricare le immagini rubate, si potrebbe considerare l&#8217;hotlinking come un vero e proprio furto, poiché la banda consumata dal ragazzaccio a noi proprietari di siti costa denaro (e molto!).</p>
<p>Per risolvere il problema esiste però una possibilità  che ci è offerta dal mod_rewrite di Apache, in pratica questa tecnica consente di bloccare le richieste esterne al nostro sito delle immagini, o di cambiare le richieste con altre richieste scelte da noi (quest&#8217;ultima frase è volutamente criptica perché non vi voglio rovinare la sorpresa).</p>
<p>Passiamo alla fase pratica <span id="more-54"></span> e nella directory che contiene le immagini del nostro spazio web creiamo un file .htaccess (il punto che precede il nome serve per nascondere il file dopo la sua creazione), e al suo interno inseriamo le righe:</p>
<pre lang="c">RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com/.*$ [NC]
RewriteRule .*.(gif|GIF|jpg|JPG|bmp|BMP)$ - [F]</pre>
<p>Con queste poche linee di codice stiamo dicendo che:</p>
<ul>
<li><em><strong>riga 1</strong></em>: attiva il RewriteEngine che ci consente di riscrivere le url su Apache (utile anche per l&#8217;url rewrite)</li>
<li><em><strong>righe 2,3,4</strong></em>: controllano se l&#8217;url da cui è partita la richiesta fa parte di una delle tre ammesse come ad esempio yourdomain.com o www.yourdomain.com o ancora un path relativo o assoluto locale, altrimenti non prosegue a servire la richiesta, e chi ha linkato l&#8217;immagine senza il nostro permesso non riuscirà  a caricarla.</li>
<li><em><strong>riga 5</strong></em>: sono le estensioni dei file di cui si vuole bloccare l&#8217;hotlinking.</li>
</ul>
<p>Per quanto riguarda quei codici a fine linea sono delle opzioni che vengono accettate dal RewriteEngine, in particolare [NC] sta per <em>No Case</em>  ossia il controllo tra l &#8216;url del richiedente e l&#8217;url ammessa viene fatto senza preoccuparsi di lettere maiuscole o minuscole.</p>
<p>Ma con questo sistema si può fare molto di più, perché limitarci a non far visualizzare, a chi ci sta rubando le immagini, quello che ha linkato, quando potremmo cambiare la sua richiesta e mostrargli una immagine scelta da noi, magari con un testo che gli ricorda proprio che sta rubando le immagini dal nostro sito?</p>
<p>Ecco quindi il codice che consente di realizzare tutto ciò, come prima va inserito in un file .htaccess nella cartella delle immagini:</p>
<pre lang="c">RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com/ [NC]
RewriteCond %{REQUEST_URI} !^/antiHotLink.jpg [NC]
RewriteRule .(gif|GIF|jpg|JPG|bmp|BMP)$ http://yourdomain.com/antiHotLink.jpg [R]</pre>
<p>Questo codice è praticamente identico al precedente ad eccezione della riga 6 nella quale diciamo che tutte le richieste ai file che non vogliamo siano linkati, fatte da siti esterni al nostro debbono essere redirette verso antiHotLink.jpg in questo modo se il &#8220;ladro&#8221; linka l&#8217;immagine con Topolino troverà  al suo posto l&#8217;immagine scelta da noi con un bel testo nel quale potrete inserire il vostro indirizzo in modo che suo malgrado vi farà  pubblicità .</p>
<p>Fate attenzione però che se l&#8217;immagine antiHotLink.jpg è sul vostro dominio, questa consumerà ancora la vostra banda, quindi per ottenere risultati migliori conviene che l&#8217;immagine sia su un secondo server e che in ogni caso sia di dimensioni (intendo il peso) ridottissime.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/12/02/protezione-hotlink/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tecnica dell&#8217;URL rewrite</title>
		<link>http://www.antonellocicchese.com/2006/09/04/tecnica-dellurl-rewrite/</link>
		<comments>http://www.antonellocicchese.com/2006/09/04/tecnica-dellurl-rewrite/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 15:06:32 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/09/04/tecnica-dellurl-rewrite/</guid>
		<description><![CDATA[L&#8217;URL rewriting è quella tecnica che vi permette (server consentendo), attraverso l&#8217;uso di particolari istruzioni nei file .htaccess, di trasformare gli indirizzi dei vostri siti dinamici, umanamente illegibili ed ancor peggio inaffidabili per gli spider, in un formato utile all&#8217;indicizzazione nei motori e alla memorizzazione degli utenti.Per farvi capire cosa sono le pagine dinamiche, diciamo [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;<strong>URL rewriting</strong> è quella tecnica che vi permette (server consentendo), attraverso l&#8217;uso di particolari istruzioni nei file .htaccess, di trasformare gli indirizzi dei vostri siti dinamici, umanamente illegibili ed ancor peggio inaffidabili per gli spider, in un formato utile all&#8217;indicizzazione nei motori e alla memorizzazione degli utenti.Per farvi capire cosa sono le pagine dinamiche, diciamo che voi avete il vostro bel forum nella barra degli indirizzi presenta l&#8217;url in un formato caratterizzato dalla presenza di molte variabili (sono tutte quelle voci che seguono il ?) che via via che vi aggirate nel sito cambiano in funzione del punto dove vi trovate.</p>
<p>Dal punto di vista di quei simpatici ragnetti dei motori di ricerca questi url sono la cosa pi� pericolosa che esista, difatti nulla assicura allo spider che seguendo questi indirizzi riuscirebbe ad indicizzare correttamente il sito ad esempio supponiamo che voi abbiate un sito con due sole pagine index.php e spidertrap.php, e che per qualche motivo index contenga un link a spidertrap utlizzando un indirizzo nel formato sito/spidertrap.php?SID=84duryreyey  e spidertrap contenga un link a index sempre nel formato di prima, dove SID � la variabile che contiene l&#8217;id di sessione del vostro visitatore, quello che potrebbe succedere, ad ogni nuova visita degli spider, è che seguendo i link tra le due pagine, lo spider cadrebbe in un loop nel quale ad ogni nuovo accesso SID avrebbe un valore diverso da quello precedente, inducendo così lo spider a pensare di trovarsi difronte ad una pagina mai indicizzata, ottenendo così un&#8217;indicizzazione infinita.</p>
<p>La norma per gli spider è quindi quella di non considerare i parametri negli url, (o almeno tralasciarne buona parte) riducendo così la profondità di indicizzazione nei vostri siti.</p>
<p>Proprio in ragione di questo interviene l&#8217;url rewriting che consente di riscrivere gli indirizzi che contengono parametri in indirizzi nel formato: sito/param1/param2/param3/pippo.php  o in quasi qualunque altra forma vi venga in mente, consentendo così agli spider di attraversare tutto il vostro sito, oltre che ai vostri utenti di rintracciare una pagina interna senza diventare matti.</p>
<p>Il post potrei dichiararlo concluso qui, non mi metterò a spiegare come vanno scritte le regole per l&#8217;url rewrite, ma se qualcuno fosse particolarmente interessato potrei pensare di scrivere un nuovo post.</p>
<p>Consiglio a tutti gli interessati di leggersi questo articolo se potete usare .htaccess sul vostro server:</p>
<p><a href="http://pro.html.it/articoli/id_219/idcat_28/pag_3/pag.html" target="_blank">http://pro.html.it/articoli/id_219/idcat_28/pag_3/pag.html</a></p>
<p>mentre quest&#8217;altro se non vi viene concesso:</p>
<p><a href="http://freephp.html.it/articoli/view_articolo.asp?id=61" target="_blank">http://freephp.html.it/articoli/view_articolo.asp?id=61</a></p>
<h5><em>Originariamente questa testo è stato pubblicato da me sul forum del sito AlVerde.net, a questo indirizzo potrete leggere la versione originale:<br />
<a href="http://www.alverde.net/forum/topic.asp?TOPIC_ID=6866&amp;whichpage=1" target="_blank">http://www.alverde.net/forum/topic.asp?TOPIC_ID=6866&amp;whichpage=1</a></em><em> </em></h5>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/09/04/tecnica-dellurl-rewrite/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Analisi dei log di Apache</title>
		<link>http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/</link>
		<comments>http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/#comments</comments>
		<pubDate>Wed, 29 Mar 2006 14:11:30 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/</guid>
		<description><![CDATA[Salve a tutti, questo che vi propongo è uno script in python, che ho scritto recentemente, in grado di analizzare i log prodotti dal web server apache (nel formato standard ip &#8211; - [data] &#8211; richiesta) e di estrarre da questi, per ciascun ip, l&#8217;intera storia delle sue richieste.
Impostando un valore soglia per il numero [...]]]></description>
			<content:encoded><![CDATA[<p>Salve a tutti, questo che vi propongo è uno script in python, che ho scritto recentemente, in grado di analizzare i log prodotti dal web server apache (nel formato standard ip &#8211; - [data] &#8211; richiesta) e di estrarre da questi, per ciascun ip, l&#8217;intera storia delle sue richieste.</p>
<p>Impostando un valore soglia per il numero di richieste da analizzare, è possibile sfruttare questo tool per la ricerca di indirizzi ip che stanno tentando dos attack o che eseguono comunque un numero di richieste fuori dalla norma.</p>
<p>Lo script va eseguito passandogli come parametri il nome del file di log e il valore soglia, a questo punto dopo l&#8217;analisi creerà una cartella con all&#8217;interno tutti file di testo il cui nome sarà composto dal numero delle richieste e dall&#8217;indirizzo ip del richiedente, e che conterranno l&#8217;elenco dettagliato delle richieste fatte.</p>
<p>E&#8217; importante notare che i file prodotti sono ancora fedeli allo standard dei log di apache, risultano quindi ulteriormente analizzabili con altri software più specifici come awstats.</p>
<p>Il codice dello script è il seguente (<a title="Download logAnalyzer.py" href="http://www.antonellocicchese.com/UserFiles/code/logAnalyzer.py">download</a>):</p>
<p>Error: Could not open logAnalyzer.py</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
