<?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>Capn3m0 WebSecurity &#187; Programmazione</title>
	<atom:link href="http://www.capn3m0.org/category/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.capn3m0.org</link>
	<description>...hacking, security, wifi and more...</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:58:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>[SOLUZIONE] Errori 500 e 504 in PhocaPDF</title>
		<link>http://www.capn3m0.org/soluzione-errori-500-e-504-in-phocapdf.html</link>
		<comments>http://www.capn3m0.org/soluzione-errori-500-e-504-in-phocapdf.html#comments</comments>
		<pubDate>Tue, 27 Dec 2011 17:14:48 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[conversione pdf]]></category>
		<category><![CDATA[errore 500]]></category>
		<category><![CDATA[errore 504]]></category>
		<category><![CDATA[internal server error]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[phocapdf]]></category>
		<category><![CDATA[phocapdf errore]]></category>
		<category><![CDATA[soluzione phocapdf]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=4038</guid>
		<description><![CDATA[Questo di seguito è un veloce workaround per risolvere alcuni frequenti problemi di PhocaPDF legati alla generazione dei PDF partendo dagli articoli del Joomla. PhocaPDF è un plugin scaricabile gratuitamente che permette di aggiungere alcune comode funzioni quali appunto la trasformazione di un articolo Joomla in PDF e l&#8217;aggiunta di alcune personalizzazioni come il logo, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.capn3m0.org/wp-content/uploads/2011/12/phocapdf.jpg" rel="lightbox[4038]" title="PhocaPDF"><img class="alignleft size-thumbnail wp-image-4039" title="PhocaPDF" src="http://www.capn3m0.org/wp-content/uploads/2011/12/phocapdf-150x150.jpg" alt="[SOLUZIONE] Errori 500 e 504 in PhocaPDF" width="150" height="150" /></a>Questo di seguito è un veloce workaround per risolvere alcuni frequenti problemi di <strong>PhocaPDF</strong> legati alla generazione dei PDF partendo dagli articoli del Joomla.</p>
<p><a title="PhocaPDF" href="http://www.phoca.cz/phocapdf" target="_blank"><strong>PhocaPDF</strong></a> è un plugin scaricabile gratuitamente che permette di aggiungere alcune comode funzioni quali appunto la trasformazione di un articolo Joomla in PDF e l&#8217;aggiunta di alcune personalizzazioni come il logo, l&#8217;header, il footer, etc.</p>
<p>Presso alcuni Hosting può capitare che invece che la creazione del PDF generi errori quali:</p>
<ul>
<li><strong>504 Gateway Timeout</strong></li>
<li><strong>500 Internal Server Error</strong></li>
</ul>
<p>Questi errori difficilmente vengono segnalati nei log e pertanto sono difficili da individuare e risolvere.</p>
<p>Per esperienza personale ho potuto constatare che questi errori si manifestano poiché PhocaPDF prova di default ad utilizzare le Librerie <strong>ImageMagick per convertire e ridimensionare le immagini</strong>. Se queste ultime non sono presenti allora utilizzerà le Librerie GD.</p>
<p>Presso l&#8217;Hosting su cui ho avuto modo di testare questa problematica le Librerie ImageMagick, sebbene correttamente installate e funzionanti, quando vengono interrogate da <strong>PhocaPDF</strong> mandano in errore lo script generando migliaia di file di cache nel percorso:</p>
<p><strong>administrator/components/com_phocapdf/assets/tcpdf/cache</strong></p>
<p>causando di conseguenza l&#8217;<strong>errore 500 o 504.</strong></p>
<p>Per <strong>risolvere il problema</strong> basterà modificare il file:</p>
<p><strong>administrator/components/com_phocapdf/assets/tcpdf/tcpdf.php</strong></p>
<p>alla <strong>riga 7603</strong> sostituendo la voce:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">extension_loaded</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'imagick'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// ImageMagick</span></pre></div></div>

<p>con</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">extension_loaded</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'imagick'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// ImageMagick</span></pre></div></div>

<p>In questo modo si forzerà l&#8217;utilizzo delle Librerie GD che non daranno problemi e <strong>PhocaPDF</strong> convertirà correttamente l&#8217;articolo in PDF.</p>
<p>Se riscontrate problemi o anomalie scriveteci!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/soluzione-errori-500-e-504-in-phocapdf.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[WP PLUGIN] &#8211; Wp User Page, creare una staff page con WordPress</title>
		<link>http://www.capn3m0.org/wp-plugin-wp-users-page-creare-una-staff-page-wordpress.html</link>
		<comments>http://www.capn3m0.org/wp-plugin-wp-users-page-creare-una-staff-page-wordpress.html#comments</comments>
		<pubDate>Sat, 07 May 2011 17:48:32 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web&Cms]]></category>
		<category><![CDATA[WP Plugins]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress user list]]></category>
		<category><![CDATA[wordpress user role]]></category>
		<category><![CDATA[wordpress-plugin]]></category>
		<category><![CDATA[wp-users-page]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=2599</guid>
		<description><![CDATA[Dovendo realizzare la Staff Page per poter essere inserito nei siti del canale Google News ho cercato nel Web un plugin per WordPress che lo permettesse scoprendo, mio malgrado, che nessuno aveva provveduto a realizzarlo. Armato di tempo libero ho deciso di crearlo e a questo link potrete trovare il plugin che ho sviluppato: wp-users-page. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.capn3m0.org/wp-content/uploads/2011/05/wordpress-logo.png" rel="lightbox[2599]" title="wordpress-logo"><img class="alignleft size-thumbnail wp-image-2600" title="wordpress-logo" src="http://www.capn3m0.org/wp-content/uploads/2011/05/wordpress-logo-150x150.png" alt="[WP PLUGIN]   Wp User Page, creare una staff page con WordPress" width="150" height="150" /></a>Dovendo realizzare la <a href="http://www.capn3m0.org/staff"><strong>Staff Page</strong></a> per poter essere inserito nei siti del canale <a href="http://www.google.com/support/news_pub/bin/request.py?contact_type=suggest_content" target="_blank"><strong>Google News</strong></a> ho cercato nel Web un <strong>plugin per WordPress</strong> che lo permettesse scoprendo, mio malgrado, che nessuno aveva provveduto a realizzarlo.</p>
<p>Armato di tempo libero ho deciso di crearlo e a questo link potrete trovare il plugin che ho sviluppato: <a href="http://www.capn3m0.org/wp-users-page"><strong>wp-users-page</strong></a>.</p>
<p>Utilizzando un semplice shortcode o tag all&#8217;interno di una pagina o post si potranno <strong>visualizzare tutti gli utenti appartenenti ad un Gruppo (Admin, Editor, Author, Contributor,Subscriber)</strong> mostrando ognuno in un riquadro con:</p>
<ul>
<li>Nome</li>
<li>Ruolo</li>
<li>Descrizione Breve</li>
<li>Avatar</li>
</ul>
<p>Testatelo e datemi il vostro giudizio <img src='http://www.capn3m0.org/wp-includes/images/smilies/icon_wink.gif' alt="[WP PLUGIN]   Wp User Page, creare una staff page con WordPress" class='wp-smiley' title="[WP PLUGIN]   Wp User Page, creare una staff page con WordPress pics" /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/wp-plugin-wp-users-page-creare-una-staff-page-wordpress.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reset della password di WordPress</title>
		<link>http://www.capn3m0.org/reset-password-wordpress.html</link>
		<comments>http://www.capn3m0.org/reset-password-wordpress.html#comments</comments>
		<pubDate>Sun, 31 Oct 2010 21:32:51 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web&Cms]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[reset admin password]]></category>
		<category><![CDATA[reset password]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=1044</guid>
		<description><![CDATA[Di seguito troverete lo script che consente di modificare la password di Administrator o di qualsiasi utente del vostro WordPress senza dover conoscere l&#8217;hashing Md5 o come si utilizza un Database MySQL dal relativo Pannello di Controllo. Spesso capita d non ricordarsi la password o, a volte (purtroppo), ci troviamo la password cambiata in seguito [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.capn3m0.org/wp-content/uploads/2010/10/wordpress.jpg" rel="lightbox[1044]" title="WordPress"><img class="alignleft size-thumbnail wp-image-1045" title="WordPress" src="http://www.capn3m0.org/wp-content/uploads/2010/10/wordpress-150x150.jpg" alt="Reset della password di WordPress" width="150" height="150" /></a>Di seguito troverete lo script che consente di modificare la password di Administrator o di qualsiasi utente del vostro WordPress senza dover conoscere l&#8217;hashing Md5 o come si utilizza un Database MySQL dal relativo Pannello di Controllo.</p>
<p>Spesso capita d non ricordarsi la password o, a volte (purtroppo), ci troviamo la password cambiata in seguito a qualche attacco hacker.</p>
<p><span id="more-1044"></span>Per poterla ripristinare basterà copiare il file &#8220;wordpress_reset_pwd.php&#8221; nella root del vostro WordPress e successivamente richiamarlo via Web all&#8217;indirizzo:</p>
<p><cite>http://www.dominio.com/&lt;root_wordpress&gt;/wordpress_reset_pwd.php</cite></p>
<p>Vi apparirà un form minimal come quello della seguente figura:</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2010/10/change_pwd.jpg" rel="lightbox[1044]" title="Cambio Password WordPress"><img class="aligncenter size-medium wp-image-1046" title="Cambio Password WordPress" src="http://www.capn3m0.org/wp-content/uploads/2010/10/change_pwd-300x189.jpg" alt="Reset della password di WordPress" width="300" height="189" /></a></p>
<p>Basterà inserire l&#8217;username dell&#8217;utente e la password che si vuole impostare e il gioco è fatto!! <img src='http://www.capn3m0.org/wp-includes/images/smilies/icon_wink.gif' alt="Reset della password di WordPress" class='wp-smiley' title="Reset della password di WordPress pics" /> </p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2010/10/change_pwd2.jpg" rel="lightbox[1044]" title="WordPress Password cambiata"><img class="aligncenter size-medium wp-image-1047" title="WordPress Password cambiata" src="http://www.capn3m0.org/wp-content/uploads/2010/10/change_pwd2-300x182.jpg" alt="Reset della password di WordPress" width="300" height="182" /></a></p>
<p><strong>Download <a href="http://www.capn3m0.org/wp-content/uploads/2010/10/wordpress_reset_pwd.zip">wordpress_reset_pwd.php</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/reset-password-wordpress.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reset della password di Admin di Joomla versioni 1.5.x</title>
		<link>http://www.capn3m0.org/reset-password-admin-joomla-versioni-1.5.x.html</link>
		<comments>http://www.capn3m0.org/reset-password-admin-joomla-versioni-1.5.x.html#comments</comments>
		<pubDate>Sun, 31 Oct 2010 16:47:14 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web&Cms]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[reset admin password]]></category>
		<category><![CDATA[reset password]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=1049</guid>
		<description><![CDATA[Di seguito troverete lo script che consente di modificare la password di Administrator di qualsiasi versione del Joomla 1.5.x senza dover conoscere l&#8217;hashing Md5 o come si utilizza un Database MySQL dal relativo Pannello di Controllo. Spesso capita d non ricordarsi la password o, a volte (purtroppo), ci troviamo la password cambiata in seguito a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla-300x205.png" rel="lightbox[1049]" title="Joomla"><img class="alignleft size-thumbnail wp-image-1051" title="Joomla" src="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla-300x205-150x150.png" alt="Reset della password di Admin di Joomla versioni 1.5.x" width="150" height="150" /></a>Di seguito troverete lo script che consente di modificare la password di Administrator di qualsiasi versione del Joomla 1.5.x senza dover conoscere l&#8217;hashing Md5 o come si utilizza un Database MySQL dal relativo Pannello di Controllo.</p>
<p>Spesso capita d non ricordarsi la password o, a volte (purtroppo), ci troviamo la password cambiata in seguito a qualche attacco hacker.</p>
<p><span id="more-1049"></span></p>
<p><img title="Continua..." src="../wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="Reset della password di Admin di Joomla versioni 1.5.x"  />Per poterla ripristinare basterà copiare il file &#8220;joomla15_reset_pwd.php&#8221; nella root del vostro Joomla e successivamente richiamarlo via Web all&#8217;indirizzo:</p>
<p><cite>http://www.dominio.com/&lt;root_joomla&gt;/joomla15_reset_pwd.php</cite></p>
<p>Vi apparirà un form minimal come quello della seguente figura:</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla_change1.png" rel="lightbox[1049]" title="joomla_change1"><img class="aligncenter size-medium wp-image-1052" title="joomla_change1" src="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla_change1-300x189.png" alt="Reset della password di Admin di Joomla versioni 1.5.x" width="300" height="189" /></a></p>
<p>Basterà inserire l&#8217;username dell&#8217;utente e la password che si vuole impostare e il gioco è fatto!! <img src='http://www.capn3m0.org/wp-includes/images/smilies/icon_wink.gif' alt="Reset della password di Admin di Joomla versioni 1.5.x" class='wp-smiley' title="Reset della password di Admin di Joomla versioni 1.5.x pics" /> </p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla_change2.jpg" rel="lightbox[1049]" title="joomla_change2"><img class="aligncenter size-medium wp-image-1053" title="joomla_change2" src="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla_change2-300x182.jpg" alt="Reset della password di Admin di Joomla versioni 1.5.x" width="300" height="182" /></a></p>
<p><strong>Download <a href="http://www.capn3m0.org/wp-content/uploads/2010/10/joomla15_reset_pwd.zip">joomla15_reset_pwd.php</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/reset-password-admin-joomla-versioni-1.5.x.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google presenta il nuovo linguaggio: GoogleGo!</title>
		<link>http://www.capn3m0.org/google-presenta-il-nuovo-linguaggio-googlego.html</link>
		<comments>http://www.capn3m0.org/google-presenta-il-nuovo-linguaggio-googlego.html#comments</comments>
		<pubDate>Fri, 13 Nov 2009 20:44:32 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[googlego]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=334</guid>
		<description><![CDATA[Google non si ferma davanti a nulla e in questi giorni hanno presentato un nuovo linguaggio di programmazione: Go! Proprio così! Stanchi del fatto che negli ultimi dieci anni non ci sono stati significativi progressi nel mondo dei linguaggi di programmazione hanno deciso di farselo in casa come spiega Rob Pike, principal software engineer in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.capn3m0.org/wp-content/uploads/2009/11/googlego.PNG" rel="lightbox[334]" title="GoogleGo"><img class="size-thumbnail wp-image-335 alignleft" title="GoogleGo" src="http://www.capn3m0.org/wp-content/uploads/2009/11/googlego-150x150.PNG" alt="Google presenta il nuovo linguaggio: GoogleGo!" width="135" height="135" /></a><strong>Google</strong> non si ferma davanti a nulla e in questi giorni hanno presentato un nuovo linguaggio di programmazione: <a href="http://golang.org/" target="_blank"><strong>Go</strong></a>!</p>
<p>Proprio così! Stanchi del fatto che negli ultimi dieci anni non ci sono stati significativi progressi nel mondo dei linguaggi di programmazione hanno deciso di farselo in casa come spiega Rob Pike, principal software engineer in <strong>Google</strong>:</p>
<blockquote><p><em>Abbiamo sviluppato Go perché siamo rimasti un po’ frustrati per quanto lo sviluppo software è diventato difficile negli ultimi dieci anni o giù di lì</em></p></blockquote>
<p><span id="more-334"></span></p>
<p><strong>Google Go</strong> è un linguaggio ad oggetti affidabile come il <strong>Python</strong> e performante come  <strong>C</strong> o<strong> C++</strong>, ottimizzato per applicazioni in ambito Server grazie al suo modello di programmazione concorrente. Tradotto in parole semplici questo linguaggio permetterà di avere velocità di compilazione elevata mentre le cosiddette &#8220;<a href="http://golang.org/doc/go_faq.html#Concurrent_programming" target="_blank">goroutine</a>&#8221; consentiranno di eseguire più processi nello stesso momento.</p>
<p>E&#8217; distribuito come prodotto <strong>open source</strong> e i membri del <strong>Google Team</strong> confidano molto nella rete e negli utenti per vedere questo progetto crescere. Eccovi due dichiarazioni:</p>
<blockquote><p><em>Go è un progetto. Speriamo che gli utenti più audaci decidano di testarlo. Siamo consapevoli che Go non sarà adottato da tutti ma speriamo che quel numero di programmatori sia tale da giustificare lo sviluppo futuro di questo linguaggio di programmazione</em></p></blockquote>
<blockquote><p><em>Abbiamo bisogno di librerie e strumenti migliori, e la comunità open source è ottima per offrire un aiuto in tal senso</em></p></blockquote>
<p>Il progetto <strong>Google Go</strong> è partito nel 2007 da <strong>Robert Griesemer, Rob Pike e Ken Thompson</strong> ma, come sottolineano a Mountan View, è ancora in fase sperimentale e infatti il Team di sviluppo a tempo pieno è stato creato solo 1 anno fa.</p>
<p>Nella precedente dichiarazione è stata utilizzata la frase &#8220;utenti più audaci&#8221; poiché <strong>BigG</strong> dichiara che bisogna avere una buona esperienza nell&#8217;ambito della programmazione e che la difficoltà di apprendimento è simile a quella del <strong>Java</strong>.</p>
<p>Alcuni Link utili:</p>
<p><a href="http://google-opensource.blogspot.com/2009/11/hey-ho-lets-go.html" target="_blank">Post ufficiale della nascita di GoogleGo (Google Code Blog)</a></p>
<p><a href="http://golang.org/" target="_blank">Sito Ufficiale GoogleGo</a></p>
<p><a href="http://golang.org/doc/go_faq.html" target="_blank">F.A.Q.</a></p>
<p>Video:</p>
<p><object width="480" height="295" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/wwoWei-GAPo&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed width="480" height="295" type="application/x-shockwave-flash" src="http://www.youtube.com/v/wwoWei-GAPo&amp;hl=en_US&amp;fs=1&amp;" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/google-presenta-il-nuovo-linguaggio-googlego.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nuovo Tool Md5 Encrypt / Decrypt</title>
		<link>http://www.capn3m0.org/nuovo-tool-md5-encrypt-decrypt.html</link>
		<comments>http://www.capn3m0.org/nuovo-tool-md5-encrypt-decrypt.html#comments</comments>
		<pubDate>Fri, 30 Oct 2009 23:29:10 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[database hash md5]]></category>
		<category><![CDATA[database password]]></category>
		<category><![CDATA[decrypt md5]]></category>
		<category><![CDATA[encrypt md5]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=303</guid>
		<description><![CDATA[Quest&#8217;oggi ho provveduto ad implementare un tool che è ora disponibile a tutti gli utenti del sito. Si tratta di un semplice form che permette di criptare parole/frasi in MD5 e salvare tutti gli hash MD5 in un Database così che si ha la possibilità di decriptare l&#8217;hash MD5 se già presente nel Database. Allo [...]]]></description>
			<content:encoded><![CDATA[<p>Quest&#8217;oggi ho provveduto ad implementare un <strong><a href="http://www.capn3m0.org/md5-encrypt-decrypt">tool</a> </strong>che è ora disponibile a tutti gli utenti del sito.<br />
Si tratta di un semplice form che permette di <strong>criptare parole/frasi in MD5</strong> e salvare tutti gli hash MD5 in un Database così che si ha la possibilità di <strong>decriptare l&#8217;hash MD5 </strong>se già presente nel Database.<br />
Allo stato attuale ho provveduto a caricare nel Database oltre<strong> 60mila hash MD5</strong> generati da vari dizionari di parole/password (<strong>wordlist</strong>) che si trovano in giro per la Rete.</p>
<p>Periodicamente provvederò ad inserire nuovi vocaboli e se qualcuno vuole condividere un suo dizionario sarò ben lieto di utilizzarlo per aggiungerlo al Database.</p>
<p>In seguito, sperando che il Database cresca in fretta, provvederò a rendere disponibili per il <strong>download i file txt</strong> così da poterli utilizzare autonomamente.</p>
<p>Per testarlo <a href="http://www.capn3m0.org/md5-encrypt-decrypt"><strong>cliccate qui</strong></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/nuovo-tool-md5-encrypt-decrypt.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[RAW FIX] &#8211; JOOMLA &#8211; Errore 500 in &#8220;Gestione Media&#8221; (com_media)</title>
		<link>http://www.capn3m0.org/raw-fix-joomla-errore-500-in-gestione-media-com_media.html</link>
		<comments>http://www.capn3m0.org/raw-fix-joomla-errore-500-in-gestione-media-com_media.html#comments</comments>
		<pubDate>Wed, 21 Oct 2009 21:35:57 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[com_media]]></category>
		<category><![CDATA[internal server error]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=287</guid>
		<description><![CDATA[Come feci in occasione del problema nell&#8216;upload delle immagini in Virtuemart, questa volta vi illustro un tricks per risolvere un fastidioso problema che si può avere con il Joomla (solo nelle versioni 1.5.x) quando le cartelle &#8220;images&#8221; e &#8220;media&#8221; raggiungono una dimensione e un numero di file/cartelle elevato. Questo CMS di default (personalmente non ne [...]]]></description>
			<content:encoded><![CDATA[<p>Come feci in occasione del problema nell<a href="http://www.capn3m0.org/raw-fix-virtuemart-errore-500-upload-immagini.html">&#8216;upload delle immagini in Virtuemart</a>, questa volta vi illustro un tricks per risolvere un fastidioso problema che si può avere con il<strong> <a href="http://www.joomla.org/" target="_blank">Joomla</a> (solo nelle versioni 1.5.x)</strong> quando le cartelle &#8220;images&#8221; e &#8220;media&#8221; raggiungono una dimensione e un numero di file/cartelle elevato.</p>
<p>Questo CMS di default (personalmente non ne capisco il motivo) ha abilitata la &#8220;ricerca ricorsiva&#8221; per tutto ciò che riguarda l&#8217;elencazione (listing) di file e cartelle di una path. In questo caso in particolare mi riferisco al componente &#8220;<strong>com_media</strong>&#8221; che si occupa della gestione dei contenuti multimediali quali foto e video. Nella pagina principale dell&#8217;Amministrazione del Joomla andando su &#8220;<strong>Gestione Media</strong>&#8221; si accede ad un interfaccia stile &#8220;client ftp&#8221; che permette di navigare all&#8217;interno delle cartelle &#8220;images&#8221; e &#8220;media&#8221; ed eseguire le normali operazioni di cancellazione/modifica/etc su file e cartelle in esse contenute.</p>
<p><span id="more-287"></span>Il problema sorge quando il numero di file contenuti in queste due cartelle raggiunge dimensioni tali da non rendere possibile il listing di tutto il contenuto nei <strong>120 secondi di Timeout</strong> impostati sul Server (tranne servizi dedicati appostivamente al Joomla i normali Hosting Provider impostano il max_execution_time a 120 secondi). Al termine di tale tempo se l&#8217;operazione non è completata, a seconda della configurazione e della versione del WebServer, viene mostrato l&#8217;errore &#8220;<strong>500 Internal Server Error</strong>&#8221; o <strong>&#8220;504 Gateway Timeout</strong>&#8220;. Tradotto in parole povere significa che lo script ha provato ad eseguire l&#8217;operazione ma il processo era ancora in corso trascorsi 2 minuti e pertanto è stato bloccato.</p>
<p>Per disabilitare la &#8220;ricerca ricorsiva&#8221;, quindi, è necessario aprire il file &#8220;<strong>manager.php</strong>&#8221; presente nella path:</p>
<p><cite>&lt;root_di_Joomla&gt;/administrator/components/com_media/models/manager.php</cite></p>
<p>e successivamente posizionarsi alle <strong>Righe 63 e 102</strong> che appariranno così:</p>
<p><br class="spacer_" /></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$folders</span> <span style="color: #339933;">=</span> JFolder<span style="color: #339933;">::</span><span style="color: #004000;">folders</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$base</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><br class="spacer_" /></p>
<p>e modificarle variando il <strong>1° true</strong> su <strong>false</strong> come di seguito:</p>
<p><br class="spacer_" /></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$folders</span> <span style="color: #339933;">=</span> JFolder<span style="color: #339933;">::</span><span style="color: #004000;">folders</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$base</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><br class="spacer_" /></p>
<p>Di seguito le prime righe della funzione che viene richiamata che dimostrano che il parametro variato va a disabilitare la ricorsione.</p>
<p><br class="spacer_" /></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #009933; font-style: italic;">/**
	 * Utility function to read the folders in a folder.
	 *
	 * @param	string	The path of the folder to read.
	 * @param	string	A filter for folder names.
	 * @param	mixed	True to recursively search into sub-folders, or an
	 * integer to specify the maximum depth.
	 * @param	boolean	True to return the full path to the folders.
	 * @param	array	Array with names of folders which should not be shown in
	 * the result.
	 * @return	array	Folders in the given folder.
	 * @since 1.5
	 */</span>
	<span style="color: #000000; font-weight: bold;">function</span> folders<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurse</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fullpath</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exclude</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.svn'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'CVS'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Initialize variables</span>
		<span style="color: #000088;">$arr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Check to make sure the path valid and clean</span>
		<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> JPath<span style="color: #339933;">::</span><span style="color: #004000;">clean</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Is the path a folder?</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			JError<span style="color: #339933;">::</span><span style="color: #004000;">raiseWarning</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">21</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'JFolder::folder: '</span> <span style="color: #339933;">.</span> JText<span style="color: #339933;">::</span>_<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Path is not a folder'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Path: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// read the source directory</span>
		<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'..'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exclude</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span> <span style="color: #339933;">.</span> DS <span style="color: #339933;">.</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$isDir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$isDir</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #666666; font-style: italic;">// Removes filtered directories</span>
					<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/<span style="color: #006699; font-weight: bold;">$filter</span>/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullpath</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #000088;">$arr</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #000088;">$arr</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
					<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$recurse</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_integer</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$recurse</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #000088;">$arr2</span> <span style="color: #339933;">=</span> JFolder<span style="color: #339933;">::</span><span style="color: #004000;">folders</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurse</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fullpath</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #000088;">$arr2</span> <span style="color: #339933;">=</span> JFolder<span style="color: #339933;">::</span><span style="color: #004000;">folders</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurse</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fullpath</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
&nbsp;
						<span style="color: #000088;">$arr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arr2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #990000;">asort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$arr</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p><br class="spacer_" /></p>
<p>Come spiegato nei commenti della funzione stessa l&#8217;impostare su &#8220;false&#8221; il 3° parametro disabilita la ricorsione evitando il manifestarsi dell&#8217;errore di Timeout.<br />
 In alternativa è possibile modificare il parametro inserendo un valore numerico intero. Così facendo si indicano quanti livelli deve scendere nella ricerca dei file/cartelle.</p>
<p>Esempio della modifica da apportare se si vuole che la ricerca scenda al massimo di 3 livelli, ossia:</p>
<p><cite>&lt;root_di_Joomla&gt;/images/cartella1/cartella2/cartella3</cite></p>
<p>La riga andrebbe modificata nel seguente modo:</p>
<p><br class="spacer_" /></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$folders</span> <span style="color: #339933;">=</span> JFolder<span style="color: #339933;">::</span><span style="color: #004000;">folders</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$base</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><br class="spacer_" /></p>
<p>Fatto ciò il problema sarò risolto e all&#8217;apertura del &#8220;<strong>com_media</strong>&#8221; verrà effettuata la ricerca per le sole cartelle &#8220;images&#8221; e &#8220;media&#8221; e per il numero di livelli da voi impostato. Tale modifica crea un piccolo problema visivo che, a mio avviso, non è molto rilevante poiché disabilitando la ricorsività dal menu ad albero del &#8220;Gestione Media&#8221; non si potrà vedere il solito &#8220;+&#8221; davanti alle cartelle che ne contengono delle altre. Analizzando solo il primo livello delle cartelle non può creare l&#8217;albero di navigazione fin da subito e pertanto si aggiornerà man mano che si scende nelle sottocartelle.</p>
<p>Per un problema risolto ritengo sia una piccola perdita.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/raw-fix-joomla-errore-500-in-gestione-media-com_media.html/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[SEO] &#8211; Canonical, il nuovo Tag per i professionisti SEO</title>
		<link>http://www.capn3m0.org/seo-canonical-il-nuovo-tag-per-i-professionisti-seo.html</link>
		<comments>http://www.capn3m0.org/seo-canonical-il-nuovo-tag-per-i-professionisti-seo.html#comments</comments>
		<pubDate>Wed, 18 Mar 2009 12:32:44 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[canonical tag]]></category>
		<category><![CDATA[Central Blog]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[spiders]]></category>
		<category><![CDATA[webmaster central]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=271</guid>
		<description><![CDATA[Da qualche tempo i maggiori Motori di Ricerca ossia Google, Yahoo e Microsoft hanno trovato un accordo per stabilire alcune misure per evitare la presenza di contenuti duplicati. E&#8217; stato introdotto il tag &#8220;canonical&#8221; che consente di indicare agli Spiders dei Motori di Ricerca quale url indicizzare in presenza di contenuti doppi. Per esempio, chi [...]]]></description>
			<content:encoded><![CDATA[<p>Da qualche tempo i maggiori Motori di Ricerca ossia Google, Yahoo e Microsoft hanno trovato un accordo per stabilire alcune misure per evitare la presenza di contenuti duplicati.</p>
<p>E&#8217; stato introdotto il tag &#8220;<strong>canonical</strong>&#8221; che consente di indicare agli Spiders dei Motori di Ricerca quale url indicizzare in presenza di contenuti doppi.</p>
<p>Per esempio, chi possiede un sito che è funzionante e raggiungibile sia indicando l&#8217;url:</p>
<p><cite>http://www.nomedominio.com</cite></p>
<p>sia usando</p>
<p><cite>http://nomedominio.com</cite></p>
<p>potrà evitare che la stessa pagina venga indicizzata in ambo due le forme.</p>
<p><span id="more-271"></span></p>
<p>Il codice da inserire all&#8217;interno delle pagine è il seguente:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&nbsp;</pre></div></div>

<p>Nel video seguente (in lingua inglese) potrete ascoltare <strong>Matt Cutts di Google</strong> intervistato circa il &#8220;<strong>canonical-tag</strong>&#8220;.</p>
<p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="295" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Cm9onOGTgeM&amp;hl=it&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="295" src="http://www.youtube.com/v/Cm9onOGTgeM&amp;hl=it&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</p>
<p>Sono stati già sviluppati appositi Plugins per i Cms più diffusi. Eccovi di seguito i link al download dei pacchetti:</p>
<p><a href="http://yoast.com/wp-content/uploads/2009/02/wp-canonical.zip"><strong>WordPress &#8211; Canonical Tag Plugin</strong></a></p>
<p><a href="http://yoast.com/wp-content/uploads/2009/02/magento-canonical-urls.zip"><strong>Magento &#8211; Canonical Tag Plugin</strong></a></p>
<p><a href="http://yoast.com/wp-content/uploads/2009/02/drupal-canonical-urls.zip"><strong>Drupal &#8211; Canonical Tag Plugin</strong></a></p>
<p><a href="http://www.bretteleben.de/lang-en/joomla/canonical-url-modul.html"><strong>Joomla &#8211; Canonical Tag Plugin</strong></a></p>
<p><a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html" target="_blank"><strong>Questo</strong></a>, invece, è l&#8217;articolo ufficiale del <strong>Webmaster Central Blog</strong> dove viene fornita una descrizione riguardo l&#8217;uso di questo nuovo tag.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/seo-canonical-il-nuovo-tag-per-i-professionisti-seo.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[RAW FIX] &#8211; VIRTUEMART &#8211; Errore 500 nell&#8217;upload immagini</title>
		<link>http://www.capn3m0.org/raw-fix-virtuemart-errore-500-upload-immagini.html</link>
		<comments>http://www.capn3m0.org/raw-fix-virtuemart-errore-500-upload-immagini.html#comments</comments>
		<pubDate>Mon, 09 Mar 2009 15:33:12 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[error 500 internal server error]]></category>
		<category><![CDATA[internal server error]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[virtuemart]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=269</guid>
		<description><![CDATA[Anche in questa occasione ciò che pubblico non è una vera e propria Fix ma un modo &#8220;rudimentale&#8221; per aggirare il problema e garantire il funzionamento dell&#8217;applicativo. In questo caso parliamo del componente &#8220;Virtuemart&#8221; di Joomla che consente di trasformare il Cms in un negozio on line. In alcuni Hosting a causa della configurazione del [...]]]></description>
			<content:encoded><![CDATA[<p>Anche in questa occasione ciò che pubblico non è una vera e propria Fix ma un modo &#8220;rudimentale&#8221; per aggirare il problema e garantire il funzionamento dell&#8217;applicativo.</p>
<p>In questo caso parliamo del componente &#8220;<a href="http://virtuemart.net/" target="_blank"><strong>Virtuemart</strong></a>&#8221; di <strong>Joomla </strong>che consente di trasformare il Cms in un negozio on line. In alcuni Hosting a causa della configurazione del &#8220;Timeout CGI&#8221; impostato in Apache possono verificarsi errori &#8220;500 Internal Server Error&#8221; in occasione dell&#8217;aggiunta di nuove immagini per un prodotto.</p>
<p><span id="more-269"></span>Questo perché quando si carica l&#8217;interfaccia di upload il Virtuemart esegue un check su tutti i file e cartelle della cartella predefinita delle immagini. Se, quindi, sono presenti numerosi file lo script non riesce a terminare in tempo la verifica di ogni singolo file andando in errore di &#8220;Timeout CGI&#8221;.</p>
<p>Nel mio attuale Hosting tale Timeout è impostato a 60 secondi e, quindi, ho provveduto ad editare direttamente il codice sorgente del Virtuemart per fare in modo che non esegua tale verifica indipendentemente da quanti file son presenti nella cartella predefinita.</p>
<p>Per fare ciò è necessario aprire il file &#8220;<strong>product.file_form.php</strong>&#8221; presente nella path:</p>
<p><cite>&lt;root_di_Joomla&gt;/administrator/components/com_virtuemart/html/</cite></p>
<p>e successivamente posizionarsi alla <strong>Riga 105</strong> che apparirà come segue:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$downloadRootFiles</span> <span style="color: #339933;">=</span> vmReadDirectory<span style="color: #009900;">&#40;</span>DOWNLOADROOT<span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>e modificarla variando il parametro da &#8220;<strong>true</strong>&#8221; a &#8220;<strong>false</strong>&#8221; come di seguito:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$downloadRootFiles</span> <span style="color: #339933;">=</span> vmReadDirectory<span style="color: #009900;">&#40;</span>DOWNLOADROOT<span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In questo modo il problema dell&#8217;error &#8220;500 Internal Server Error&#8221; in fase di upload dei file sarà risolto.</p>
<p>Tengo a precisare che la versione del <strong>Virtuemart </strong>su cui ho eseguito tali modifiche è la <strong>1.1.3</strong>.</p>
<p>Resto a disposizione per qualsiasi chiarimento o qualora dopo tali modifiche si riscontrino altri generi di problematiche.</p>
<p><strong>[11/03/2009 - 00.40] AGGIORNAMENTO</strong> <strong>#1</strong>: Ho fatto delle verifiche per validare il perché di tale modifica e vi riporto direttamente il codice dell&#8217;intera funzione &#8220;<strong>vmReadDirectory</strong>&#8221; presa dal file originale &#8220;<strong>ps_main.php</strong>&#8220;:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
* Utility function to read the files in a directory
* @param string The file system path
* @param string A filter for the names
* @param boolean Recurse search into sub-directories
* @param boolean True if to prepend the full path to the file name
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> vmReadDirectory<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurse</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fullpath</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span>  <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$arr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!@</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$path</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$arr</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$path</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> vmPathName<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$isDir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$dir</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;/<span style="color: #006699; font-weight: bold;">$filter</span>/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullpath</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$arr</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span> vmPathName<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$arr</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$file</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$recurse</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #000088;">$isDir</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$arr2</span> <span style="color: #339933;">=</span> vmReadDirectory<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filter</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurse</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fullpath</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$arr</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$arr</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arr2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">asort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$arr</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Come spiegato nei commenti della funzione stessa l&#8217;impostare su &#8220;false&#8221; il 3° parametro disabilita la ricorsione evitando che il check dei file venga effettuato anche nelle sottocartelle generando l&#8217;errore di Timeout (Timeout CGI = 60 sec; max_execution_time = 120).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/raw-fix-virtuemart-errore-500-upload-immagini.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[UPGRADE WP] &#8211; Errore 500 dopo aggiornamento WordPress</title>
		<link>http://www.capn3m0.org/upgrade-wp-errore-500-dopo-aggiornamento-wordpress.html</link>
		<comments>http://www.capn3m0.org/upgrade-wp-errore-500-dopo-aggiornamento-wordpress.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 18:27:35 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Aruba]]></category>
		<category><![CDATA[FIX]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=130</guid>
		<description><![CDATA[Ieri è stata rilasciata l&#8217;ultima release di WordPress, la 2.7.1. Chi utilizzava  una versione precedente ha avuto la possibilità di effettuare l&#8217;aggiornamento automatico senza dover stare a scaricare il pacchetto, unzipparlo, uploadarlo via Ftp etc.. Terminato l&#8217;aggiornamento  alcuni hanno avuto la triste sorpresa di riscontrare l&#8217;errore &#8220;500 Internal Server Error&#8221; su tutte le pagine del [...]]]></description>
			<content:encoded><![CDATA[<p>Ieri è stata rilasciata l&#8217;ultima release di <strong>WordPress</strong>, la <strong>2.7.1</strong>.</p>
<p>Chi utilizzava  una versione precedente ha avuto la possibilità di effettuare l&#8217;<strong>aggiornamento automatico</strong> senza dover stare a scaricare il pacchetto, unzipparlo, uploadarlo via Ftp etc..</p>
<p>Terminato l&#8217;aggiornamento  alcuni hanno avuto la triste sorpresa di riscontrare l&#8217;errore &#8220;<strong>500 Internal Server Error</strong>&#8221; su tutte le pagine del proprio sito. Questa problematica si manifesta negli Hosting (nel mio caso <strong>Aruba</strong>) dove i permessi di default per avere il corretto funzionamento dei file devono essere impostati a <strong>CHMOD 0755</strong> (dovuti all&#8217;utilizzo del suExec di Apache) dato che l&#8217;aggiornamento automatico comporta il reset dei permessi a CHMOD 0644.</p>
<p><span id="more-130"></span></p>
<p>L&#8217;errore è facilmente risolvibile reimpostando i permessi CHMOD corretti per tutti i file e cartelle che compongono il WordPress.</p>
<p>La <a href="http://www.wordpress-it.it" target="_blank"><strong>community di WordPress</strong></a> aveva rilasciato già in data 5/12/2008 una modifica da apportare al file &#8220;<strong>wp-config.php</strong>&#8221; per evitare il manifestarsi di questo problema.</p>
<p><a href="http://www.wordpress-it.it/2008/12/05/utenti-aruba-linux-aggiornamento-automatico-worpdpress-27/" target="_blank"><strong>ARTICOLO ORIGINALE</strong></a></p>
<p>Tale modifica consente di impostare manualmente i permessi CHMOD di default (attualmente sono a 0644) da assegnare ai file del WordPress in occasione di aggiornamenti o similari.</p>
<p>Per implementarlo è sufficiente seguire questi pochi semplici passi:</p>
<p>1) Aprire con un Editor il file &#8220;<strong>wp-config.php</strong>&#8220;;</p>
<p>2) Aggiungere le seguenti due righe in qualsiasi punto del file:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'FS_CHMOD_FILE'</span><span style="color: #339933;">,</span><span style="color: #208080;">0755</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'FS_CHMOD_DIR'</span><span style="color: #339933;">,</span><span style="color: #208080;">0755</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Fine! d&#8217;ora in poi tutti gli eventuali aggiornamenti automatici assegneranno di default i permessi 0755</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/upgrade-wp-errore-500-dopo-aggiornamento-wordpress.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[FIX] &#8211; JOOMLA &#8211; Componente Expose &#8211; Problemi Login e Upload</title>
		<link>http://www.capn3m0.org/fix-joomla-componente-expose-problemi-login-e-upload.html</link>
		<comments>http://www.capn3m0.org/fix-joomla-componente-expose-problemi-login-e-upload.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 11:23:43 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[com_expose]]></category>
		<category><![CDATA[error 500 internal server error]]></category>
		<category><![CDATA[FIX]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[Sicurezza]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=124</guid>
		<description><![CDATA[Capita frequentemente che sui siti basati sul Cms Joomla venga installato il componente &#8220;com_expose&#8221; che tramite una semplice interfaccia in Flash consente di creare e gestire facilmente degli Album Fotografici. Problema I problemi che si riscontrano utilizzando detto componente in Hosting che hanno abilitato il &#8220;Mod_Security&#8221; sono principalmentdue due: 1) Mancato accesso all&#8217;interfaccia di gestione [...]]]></description>
			<content:encoded><![CDATA[<p>Capita frequentemente che sui siti basati sul Cms <a href="http://www.joomla.org/" target="_blank"><strong>Joomla</strong></a> venga installato il componente &#8220;<a href="http://extensions.joomla.org/extensions/254/details" target="_blank"><strong>com_expose</strong></a>&#8221; che tramite una semplice interfaccia in Flash consente di creare e gestire facilmente degli Album Fotografici.</p>
<h1><strong>Problema</strong></h1>
<p>I problemi che si riscontrano utilizzando detto componente in Hosting che hanno abilitato il &#8220;<a href="http://www.modsecurity.org/" target="_blank"><strong>Mod_Security</strong></a>&#8221; sono principalmentdue due:</p>
<p>1) Mancato accesso all&#8217;interfaccia di gestione dal Pannello di Controllo del Joomla;</p>
<p>2) Errore nell&#8217;upload dei file tramite l&#8217;interfaccia Flash.</p>
<p><span id="more-124"></span></p>
<h1>Perché?</h1>
<p>Entrambe le problematiche nascono dalla presenza in diverse cartelle del file &#8220;<a href="http://en.wikipedia.org/wiki/Htaccess" target="_blank"><strong>.htaccess</strong></a>&#8221; contenente due istruzioni che, se abilitate nel Server in Hosting, consentono di disabilitare il &#8220;Mod_Security&#8221; per evitare che blocchi il passaggio di dati/file tra l&#8217;interfaccia Flash e il Server.</p>
<p>Il codice di questo file è il seguente:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">SecFilterEngine Off
SecFilterScanPOST Off</pre></div></div>

<p>Sul mio ed altri Hosting tale possibilità è disabilitata in quanto le misure di Sicurezza devono (giustamente) essere sempre attive e, quindi, il file &#8220;.htaccess&#8221; genera il manifestarsi di errori &#8220;500 Internal Server Error&#8221; e il mancato funzionamento degli applicativi/componenti dove esso è posizionato.</p>
<p>Al fine di risolvere le due problematiche precedentemente indicate, quindi, è necessario <strong>eliminare il file .htaccess </strong>dai seguenti percorsi:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>components<span style="color: #339933;">/</span>com_expose<span style="color: #339933;">/</span>expose<span style="color: #339933;">/</span>manager<span style="color: #339933;">/</span>amfphp
<span style="color: #339933;">/</span>components<span style="color: #339933;">/</span>com_expose<span style="color: #339933;">/</span>expose<span style="color: #339933;">/</span>manager<span style="color: #339933;">/</span>upload</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/fix-joomla-componente-expose-problemi-login-e-upload.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Velocizzare il proprio sito!</title>
		<link>http://www.capn3m0.org/velocizzare-il-proprio-sito.html</link>
		<comments>http://www.capn3m0.org/velocizzare-il-proprio-sito.html#comments</comments>
		<pubDate>Sun, 09 Nov 2008 18:30:34 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[output buffer]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=107</guid>
		<description><![CDATA[Oggi facendo i miei &#8220;soliti&#8221; esperimenti ho scritto due righe apparentemente inutili che però sembra abbiano migliorato un po&#8217; le prestazioni di questo sito. Le righe in questione sono le seguenti: &#60;? ob_clean(); flush(); ?&#62; Cosa sono? ob_clean() &#8211; E&#8217; il comando che cancella/svuota il contenuto dell&#8217;output_buffer senza, però, eliminare il buffer stesso. flush() -E&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi facendo i miei &#8220;soliti&#8221; esperimenti ho scritto due righe apparentemente inutili che però sembra abbiano migliorato un po&#8217; le prestazioni di questo sito.</p>
<p>Le righe in questione sono le seguenti:</p>
<blockquote><p><strong>&lt;?<br />
 ob_clean();<br />
 flush();<br />
 ?&gt;</strong></p>
</blockquote>
<h1><strong>Cosa sono?</strong></h1>
<p><span id="more-107"></span></p>
<p><strong>ob_clean()</strong> &#8211; E&#8217; il comando che cancella/svuota il contenuto dell&#8217;<strong>output_buffer</strong> senza, però, eliminare il buffer stesso.</p>
<p><strong>flush()</strong> -E&#8217; il comando che elimina il buffer.</p>
<h1><strong>Perché? Cos&#8217;è l&#8217;Output Buffer?</strong></h1>
<p>Il mio Hosting attuale ha l&#8217;output_buffer attivo di default e anche provando a disattivarlo tramite override con php.ini resta comunque abilitato. Solitamente non crea problemi in quanto si tratta di un buffer creato appositamente per migliorare le performance del Web Server e del Php. Una volta, quando ancora avevamo 56K e ISDN eravamo abituati a vedere la pagina caricarsi piano piano, pezzo per pezzo. Appariva il logo, poi il menu e via dicendo si componeva tutta la pagina. Con l&#8217;avvento delle attuali ADSL questa situazione non si verifica più, almeno a livello visivo. A livello prettamente tecnico l&#8217;intepretazione e la visualizzazione di una pagina Web continuano ad avere questo comportamento.</p>
<p>L&#8217;<strong>output_buffer</strong> server a migliorare tutto ciò aggiungendo un buffer dove viene caricata la pagina prima ancora che venga &#8220;servita&#8221; al Client, ossia il vostro Browser. In questo modo quello che una volta era il vedere il singolo pezzo caricato ora diventa un&#8217;attesa temporale, seppur minima. Utilizzando un buffer è necessario attendere che si riempia tutto prima che vengano inviati i dati al Browser (e quindi prima che iniziate a vedere la pagina visivamente).</p>
<h1>Come e Dove?</h1>
<p>Da quel che ho scoperto facendo varie prove è consigliato inserire le due righe di codice prima di qualsiasi output della pagina. Io nel caso di WordPress l&#8217;ho inserito prima di qualsiasi cosa nella pagina header del mio Template che si trova a questo percorso:</p>
<blockquote><p><strong>/&lt;root_di_wordpress&gt;/wp-content/themes/&lt;nome del template utilizzato&gt;/header.php</strong></p>
</blockquote>
<p>Ho inserito le righe prima della dicitura &#8220;&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0&#8230;&#8221; nel seguente modo:</p>
<blockquote><p><strong>&lt;?<br />
 ob_clean();<br />
 flush();<br />
 ?&gt;</strong></p>
<p><strong>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</strong></p>
</blockquote>
<h1><strong>Risultati</strong></h1>
<p>Da quel che ho potuto constatare sul mio sito e su quello di (pochi) altri le performance e soprattuto i tempi di risposta del Server migliorano.</p>
<p>Tengo a precisare che al momento non ho prove &#8220;scientifiche&#8221;  <img src='http://www.capn3m0.org/wp-includes/images/smilies/icon_biggrin.gif' alt="Velocizzare il proprio sito!" class='wp-smiley' title="Velocizzare il proprio sito! pics" />   a sostegno della mia tesi e, quindi, vi invito a provare e se avete voglia ad informarmi dell&#8217;eventuale miglioramento (e speriamo non peggioramento) del vostro sito commentate questo post fornendo quante più informazioni possibili.</p>
<p>Il mio attuale Hosting ha il Php configurato come Cgi di Apache e l&#8217;output_buffering impostato a 4096.</p>
<div id="attachment_110" class="wp-caption alignnone" style="width: 310px"><a href="http://www.capn3m0.org/wp-content/uploads/2008/11/22.jpg" rel="lightbox[107]" title="Cgi-Php"><img class="size-medium wp-image-110" title="Cgi-Php" src="http://www.capn3m0.org/wp-content/uploads/2008/11/22-300x89.jpg" alt="Velocizzare il proprio sito!" width="300" height="89" /></a><p class="wp-caption-text">Configurazione Php come CGI</p></div>
<div id="attachment_111" class="wp-caption alignnone" style="width: 310px"><a href="http://www.capn3m0.org/wp-content/uploads/2008/11/23.jpg" rel="lightbox[107]" title="Output Buffering"><img class="size-medium wp-image-111" title="Output Buffering" src="http://www.capn3m0.org/wp-content/uploads/2008/11/23-300x89.jpg" alt="Velocizzare il proprio sito!" width="300" height="89" /></a><p class="wp-caption-text">Configurazione output_buffering a 4096</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/velocizzare-il-proprio-sito.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[RAW FIX] Joomla Gcalendar Components</title>
		<link>http://www.capn3m0.org/raw-fix-joomla-gcalendar-components.html</link>
		<comments>http://www.capn3m0.org/raw-fix-joomla-gcalendar-components.html#comments</comments>
		<pubDate>Sat, 04 Oct 2008 09:56:34 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Aruba]]></category>
		<category><![CDATA[error view event]]></category>
		<category><![CDATA[errore visualizzazione eventi]]></category>
		<category><![CDATA[FIX]]></category>
		<category><![CDATA[GCalendar]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=91</guid>
		<description><![CDATA[Oggi stavo sperimentando per lavoro il componente di Joomla chiamato &#8220;GCalendar&#8221; che consente di inserire in Home Page del proprio Cms il Calendario di Google (Google Calendar) e la gestione degli Eventi dello stesso. Ho riscontrato che su alcuni Hosting (Aruba per esempio) quando si clicca su uno degli Eventi presenti alla voce &#8220;Prossimamente&#8221; va [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi stavo sperimentando per lavoro il componente di <a href="http://www.joomla.it/" target="_blank"><strong>Joomla</strong></a> chiamato &#8220;<a href="http://gcalendar.allon.ch/content/" target="_blank"><strong>GCalendar</strong></a>&#8221; che consente di inserire in Home Page del proprio Cms il Calendario di Google (<a href="http://calendar.google.com/" target="_blank">Google Calendar</a>) e la gestione degli Eventi dello stesso.</p>
<p>Ho riscontrato che su alcuni Hosting (<strong>Aruba</strong> per esempio) quando si clicca su uno degli Eventi presenti alla voce &#8220;Prossimamente&#8221; va in errore mostrando una pagina simile alla seguente.</p>
<div id="attachment_92" class="wp-caption alignnone" style="width: 310px"><a href="http://www.capn3m0.org/wp-content/uploads/2008/10/croppercapture10.jpg" rel="lightbox[91]" title="Errore GCalendar"><img class="size-medium wp-image-92" title="Errore GCalendar" src="http://www.capn3m0.org/wp-content/uploads/2008/10/croppercapture10-300x60.jpg" alt="[RAW FIX] Joomla Gcalendar Components" width="300" height="60" /></a><p class="wp-caption-text">Errore nella visualizzazione Eventi di Gcalendar per Joomla</p></div>
<p><span id="more-91"></span></p>
<p>Andando a verificare la pagina segnalata nell&#8217;errore ossia</p>
<blockquote><p><strong>/components/com_gcalendar/hiddenviews/event/tmpl/default.php</strong></p>
</blockquote>
<p>si riscontra che la riga che genera l&#8217;errore è la seguente dove viene composto l&#8217;Url da richiamare per visualizzare in un iframe l&#8217;evento direttamente dal <strong>Google Calendar</strong>.</p>
<blockquote><p><strong>$url = $p['scheme'] . &#8216;://&#8217; . $p['host'] . &#8216;/calendar/event?eid=&#8217; . $this-&gt;eventID . $this-&gt;timezone;</strong></p>
</blockquote>
<p>Analizzando meglio il codice si riscontra che i due campi &#8220;<strong>scheme</strong>&#8221; e &#8220;<strong>host</strong>&#8220;, da come vengono utilizzati, dovrebbero essere presenti nell&#8217;&#8221;<strong>Array $p</strong>&#8221; ma, in realtà non esistono e di conseguenza l&#8217;Url che viene generato non è corretto.</p>
<p>Non ho potuto effettuare molti controlli ma effettuando una stampa dell&#8217;intero &#8220;<strong>Array $p</strong>&#8221; ho riscontrato che vi è un solo campo che, tra l&#8217;altro, non viene utilizzato all&#8217;interno della pagina. Per fare una verifica approfondita andrebbe verificato il popolamento dell&#8217;Array che avviene alla riga 12 dello stesso file tramite la seguente riga:</p>
<blockquote><p><strong>$p= parse_url($this-&gt;gcalendar);</strong></p>
</blockquote>
<p>Dato che, come detto, non ho avuto la possibilità di effettuare controlli approfonditi ho risolto il problema a monte commentando la riga 14 dove si generava l&#8217;errore e aggiungendone una in cui l&#8217;Url viene generato &#8220;manualmente&#8221;. Ecco il codice:</p>
<blockquote><p><strong>#$url = $p['scheme'] . &#8216;://&#8217; . $p['host'] . &#8216;/calendar/event?eid=&#8217; . $this-&gt;eventID . $this-&gt;timezone;</strong></p>
<p><strong><br />
 $url = &#8216;http://www.google.com&#8217;.'/calendar/event?eid=&#8217; . $this-&gt;eventID . $this-&gt;timezone;</strong></p>
</blockquote>
<p>Così facendo il problema, ovviamente, si è risolto.</p>
<p>Sicuramente non è il metodo migliore per &#8220;<strong>fixare</strong>&#8221; il problema in quanto si tratta di un accorgimento piuttosto grezzo ma, temporaneamente, funzionante.</p>
<p>Eccovi il file già fixato:</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2008/10/default.rar">Joomla Gcalendar Components &#8211; RAW FIX EVENT VIEW</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/raw-fix-joomla-gcalendar-components.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ottimizzare le performance del proprio sito &#8211; php.ini</title>
		<link>http://www.capn3m0.org/ottimizzare-le-performance-del-proprio-sito-phpini.html</link>
		<comments>http://www.capn3m0.org/ottimizzare-le-performance-del-proprio-sito-phpini.html#comments</comments>
		<pubDate>Fri, 26 Sep 2008 13:09:21 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Compressione gzip]]></category>
		<category><![CDATA[Gzip]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[internal server error]]></category>
		<category><![CDATA[output compression]]></category>
		<category><![CDATA[output handler]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpinfo]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[velocità]]></category>
		<category><![CDATA[zlib]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=67</guid>
		<description><![CDATA[Spesso capita di avere problemi di velocità quando si ha il proprio sito in soluzioni Hosting Condiviso in quanto sullo stesso Server sono presenti centinaia o migliaia di domini. Può capitare, a volte, che il proprio sito subisca rallentamenti dovuti ad un innalzamento del carico generato da un altro sito presente nel medesimo Server. Non [...]]]></description>
			<content:encoded><![CDATA[<p>Spesso capita di avere problemi di velocità quando si ha il proprio sito in soluzioni Hosting Condiviso in quanto sullo stesso Server sono presenti centinaia o migliaia di domini. Può capitare, a volte, che il proprio sito subisca rallentamenti dovuti ad un innalzamento del carico generato da un altro sito presente nel medesimo Server.</p>
<p>Non vi sono consigli veri e propri da dare in merito ma, per mia esperienza personale, l&#8217;utilizzo di un &#8220;<strong>php.ini</strong>&#8221; con abilitate alcune funzioni quali, ad esempio, la &#8220;<strong>Compressione Gzip</strong>&#8220;, permette di diminuire il numero di volte in cui il proprio sito va in <strong>Timeout</strong> o in errore &#8220;<strong>500 &#8211; Internal Server Error</strong>&#8220;.</p>
<p>La <strong>Compressione Gzip </strong>consente di far si che il Server comprima alcuni oggetti delle pagine ottimizzando così le performance in quanto il &#8220;peso&#8221; generale della pagina risulta ridotto.</p>
<p><span id="more-67"></span></p>
<p>Per attivare tale opzione vi sono vari modi ma, sinceramente, io preferisco utilizzare l&#8217;override tramite &#8220;php.ini&#8221;. Tale file contiene tutte le configurazioni del Web Server che sono, praticamente, quelle che vengono visualizzate quando si esegue il comando &#8220;phpinfo()&#8221; del Php. Per vederlo in azione basta creare e, successivamente, caricare via browser una pagina .php contenete le seguenti righe:</p>
<blockquote><p>&lt;?php</p>
<p>phpinfo();</p>
<p>?&gt;</p></blockquote>
<p>Utilizzando un php.ini opportunamente modificato è possibile variare (quando consentito del Provider) alcuni parametri come, ad esempio, il &#8220;<strong>memory_limit</strong>&#8220;, il &#8220;<strong>max_execution_time</strong>&#8220;, l&#8217;&#8221;<strong>output_buffering</strong>&#8220;, etc.</p>
<p>A questo link potete leggere tutti i parametri impostabili in tale file e la loro descrizione.</p>
<p>Tornando al discorso &#8220;<strong>Compressione Gzip</strong>&#8221; eccovi di seguito il codice da inserire nel vostro &#8220;php.ini&#8221; per abilitarla.</p>
<p>Io utilizzo il metodo che si appoggia alle <a href="http://www.zlib.net/" target="_blank">Librerie Zlib</a>. Il file &#8220;php.ini&#8221; per utilizzarle è il seguente:</p>
<blockquote><p>output_buffering = 4096<br />
output_handler = <em></em><br />
zlib.output_compression = On<br />
zlib.output_compression_level = 3<br />
safe_mode = Off<br />
max_execution_time = 120<br />
memory_limit = 24M<br />
post_max_size = 8M<br />
register_globals = On<br />
upload_max_filesize = 18M<br />
variables_order = GPCS<br />
disable_functions = system,popen,dl,passthru,proc_open,shell_exec<br />
enable_dl = Off<br />
error_reporting = 6135<br />
expose_php = Off<br />
extension_dir = ./<br />
include_path = &#8220;.:/php/lib/php/&#8221;<br />
log_errors = On<br />
register_argc_argv = Off<br />
safe_mode_exec_dir =<br />
sendmail_from = me@localhost.com<br />
upload_tmp_dir = &#8220;/tmp/&#8221;<br />
user_dir = &#8220;home&#8221;<br />
y2k_compliance = Off</p></blockquote>
<p>Per chi non avesse sbattimento eccovi il file già preparato da copiare nella root del proprio sito (o dove richiesto):</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2008/09/php.ini">Php.ini &#8211; Compressione Gzip On &#8211; Librerie Zlib</a></p>
<p>In alternativa a tale metodo è possibile abilitare la compressione utilizzando le Gzip e, in tal caso, il codice da inserire è il seguente:</p>
<blockquote><p>output_buffering = 4096<br />
output_handler = ob_gzhandler<br />
safe_mode = Off<br />
max_execution_time = 120<br />
memory_limit = 24M<br />
post_max_size = 8M<br />
register_globals = On<br />
upload_max_filesize = 18M<br />
variables_order = GPCS<br />
disable_functions = system,popen,dl,passthru,proc_open,shell_exec<br />
enable_dl = Off<br />
error_reporting = 6135<br />
expose_php = Off<br />
extension_dir = ./<br />
include_path = &#8220;.:/php/lib/php/&#8221;<br />
log_errors = On<br />
register_argc_argv = Off<br />
safe_mode_exec_dir =<br />
sendmail_from = me@localhost.com<br />
upload_tmp_dir = &#8220;/tmp/&#8221;<br />
user_dir = &#8220;home&#8221;<br />
y2k_compliance = Off</p></blockquote>
<p>e questo il file già preparato:</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2008/09/php1.ini">Php.ini &#8211; Compressione Gzip On &#8211; Librerie Gzip</a></p>
<p><strong>NOTE</strong> &#8211; Il file &#8220;php.ini&#8221; ha la particolarità di resettare alle impostazioni di default di Apache le eventuali impostazioni  omesse. Se inserite solo una riga contenente l&#8217;impostazione da cambiare le restanti verrebbero resettate ai valori minimi. E&#8217; quindi importante inserire sempre tutte le impostazioni di base necessarie per evitare il crearsi di tale situazione. Il file da me pubblicato vale per il mio Hosting e, quindi, è possibile che su altri Provider crei problemi oppure necessiti di maggiori impostazioni inserite.</p>
<p>Se riscontrate problemi contattatemi tramite i Commenti che provvederò a darvi una mano.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/ottimizzare-le-performance-del-proprio-sito-phpini.html/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Problemi Installazione Menalto Gallery 2.2.6</title>
		<link>http://www.capn3m0.org/problemi-installazione-menalto-gallery-226.html</link>
		<comments>http://www.capn3m0.org/problemi-installazione-menalto-gallery-226.html#comments</comments>
		<pubDate>Wed, 24 Sep 2008 15:35:32 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Aruba]]></category>
		<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Menalto]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/?p=47</guid>
		<description><![CDATA[Spesso per lavor capita di ricevere richieste di assistenza riguardanti lo script di Galleria di Immagini realizzato da Menalto denominato Gallery. Tale applicativo giunto alla recente versione 2.2.6 scaricabile qui risulta generare un errore presso alcuni Hosting Provider come, per esempio, Aruba nello step 2 dell&#8217;installazione quando viene effettuata il check dei requisiti di Sistema. [...]]]></description>
			<content:encoded><![CDATA[<p>Spesso per lavor capita di ricevere richieste di assistenza riguardanti lo script di Galleria di Immagini realizzato da <a href="http://gallery.menalto.com/" target="_blank">Menalto</a> denominato Gallery.</p>
<p>Tale applicativo giunto alla recente versione 2.2.6 scaricabile <a href="http://codex.gallery2.org/Gallery2:Download#Packages" target="_blank">qui</a> risulta generare un errore presso alcuni Hosting Provider come, per esempio, Aruba nello step 2 dell&#8217;installazione quando viene effettuata il check dei requisiti di Sistema.</p>
<p>Solitamente l&#8217;errore è un &#8220;500 Internal Server Error&#8221; causato dal superamento del tempo di Timeout impostato in Apache. Nel file &#8220;error_log&#8221; questo è l&#8217;errore che si riscontra:</p>
<p><span id="more-47"></span></p>
<blockquote><p>[Mon Sep 22 14:18:54 2008] [error] [client xxx.xxx.xxx.xxx] <strong>ModSecurity: Output filter: Failed to read bucket (rc 70007): The timeout specified has expired</strong> [hostname "&lt;nome_host&gt;"] [uri "&lt;gallery_folder&gt;/install/index.php?step=2"] [unique_id "M2dscH8FFFEDDDryFQ3AAAC5"]</p></blockquote>
<p>La soluzione migliore sarebbe quella di far variare i limiti di Timeout al proprio Provider ma, visto che è una di quelle richieste che difficilmente vengono esaudite, ho provveduto ad editarmi i file di installazione in modo che indipendentemente da quello che il Server ha o non ha mi dia l&#8217;ok per proseguire allo step successivo.</p>
<p>Il file da scaricare per la versione <strong>Gallery 2.2.6</strong> è questo: <a href="http://www.capn3m0.org/wp-content/uploads/2008/09/systemchecksstep.rar">SystemChecksSteps</a>.</p>
<p>A suo tempo li feci anche per la versione <strong>Gallery 2.2.5</strong>. Eccoli qui:</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2008/09/systemchecksstep2.rar">SystemCheksStep &#8211; INSTALLATION 2.2.5</a></p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2008/09/systemchecksstep1.rar">SystemCheksStep &#8211; UPGRADE 2.2.5</a></p>
<p>Va sostituito al posto dell&#8217;originale.</p>
<p>Per la versione <strong>Installation</strong>:</p>
<blockquote><p>&lt;cartella di gallery&gt;/install/steps/SystemChecksSteps.class</p></blockquote>
<p>Per la versione <strong>Upgrade (solo 2.2.5)</strong>:</p>
<blockquote><p>&lt;cartella di gallery&gt;/upgrade/steps/SystemChecksSteps.class</p></blockquote>
<p>Una volta sostituito si può effettuare la normale installazione (o upgrade) senza problemi.</p>
<p>Tengo a precisare che, come già detto prima, tale file non risolve il problema ma, semplicemente, lo bypassa evitando di far eseguire qualsiasi check. Questo significa che se il Vostro Server non possiede i requisiti necessari per l&#8217;utilizzo di Gallery i problemi legati a tale incompatibilità persistono.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/problemi-installazione-menalto-gallery-226.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[EXPLOIT] Joomla 1.5.x Remote Admin Password Change</title>
		<link>http://www.capn3m0.org/joomla-15x-remote-admin-password-change.html</link>
		<comments>http://www.capn3m0.org/joomla-15x-remote-admin-password-change.html#comments</comments>
		<pubDate>Sun, 14 Sep 2008 16:26:35 +0000</pubDate>
		<dc:creator>capn3m0</dc:creator>
				<category><![CDATA[Exploit]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[Vulnerabilità]]></category>
		<category><![CDATA[defacement]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[joomla 1.5 vulnerabilities]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script php cms]]></category>
		<category><![CDATA[security exploit]]></category>
		<category><![CDATA[vulnerabilità]]></category>

		<guid isPermaLink="false">http://www.capn3m0.org/2008/09/joomla-15x-remote-admin-password-change/</guid>
		<description><![CDATA[In data 12 Agosto è stata scoperta una vulnerabilità del Cms Joomla versioni inferiori alla 1.5.6 che consente di sfruttare il componente &#8220;com_user&#8221; per editare a proprio piacimento la password di Administrator e, quindi, di sfruttare l&#8217;accesso Admin per eseguire defacement e simili. Al link seguente troverete l&#8217;annuncio ufficiale: http://developer.joomla.org/security/news/241-20080801-core-password-remind-functionality.html Questo, invece, quello dal Sito [...]]]></description>
			<content:encoded><![CDATA[<p>In data 12 Agosto è stata scoperta una vulnerabilità del Cms Joomla versioni inferiori alla 1.5.6 che consente di sfruttare il componente &#8220;com_user&#8221; per editare a proprio piacimento la password di Administrator e, quindi, di sfruttare l&#8217;accesso Admin per eseguire defacement e simili.</p>
<p>Al link seguente troverete l&#8217;annuncio ufficiale:</p>
<p><a href="http://developer.joomla.org/security/news/241-20080801-core-password-remind-functionality.html" target="_blank">http://developer.joomla.org/security/news/241-20080801-core-password-remind-functionality.html</a></p>
<p>Questo, invece, quello dal Sito Italiano:</p>
<p><a href="http://www.joomlaitalia.com/content/view/323/90/" target="_blank">http://www.joomlaitalia.com/content/view/323/90/</a></p>
<p><span id="more-3"></span>Sfruttare tale vulnerabilità risulta alquanto semplice poiché bastano pochi semplici passaggi per eseguire il reset:</p>
<p>1) Una volta individuato il Sito in Joomla caricare questo Url:</p>
<blockquote><p>/index.php?option=com_user&amp;view=reset&amp;layout=confirm</p>
</blockquote>
<p>2) A questo punto apparirà un form che chiederà l&#8217;inserimento di un codice che, teoricamente, avreste dovuto ricevere in mail</p>
<p>3) Inserite l&#8217;apice (&#8216;) come carattere continuate</p>
<p>4) A questo punto avrete il campo di cambio password e, inserendola, editerete direttamente il profilo Administrator <img src='http://www.capn3m0.org/wp-includes/images/smilies/icon_wink.gif' alt="[EXPLOIT] Joomla 1.5.x Remote Admin Password Change" class='wp-smiley' title="[EXPLOIT] Joomla 1.5.x Remote Admin Password Change pics" /> </p>
<p>Il supporto Joomla individuata la vulnerabilità (la variabile token non veniva correttamente verificata) ha provveduto a rilasciare in tempi da record la versione 1.5.6 con tale problema fixato. Dalla sua uscita sono stati scoperti ulteriori vulnerabilità che han portato alla release 1.5.7 in pochi giorni:</p>
<p>Potete scaricare dai seguenti link questa versione:</p>
<p><a href="http://joomlacode.org/gf/download/frsrelease/8376/30993/Joomla_1.5.7-Stable-Full_Package.zip" target="_blank">Joomla 1.5.7 Full Eng</a></p>
<p><a href="http://download.joomla.it/index.php?option=com_docman&amp;task=doc_download&amp;gid=717&amp;&amp;Itemid=2" target="_blank">Joomla 1.5.7 Full Ita</a></p>
<p>Per chi avesse subito un&#8217;hacking sfruttando questa vulnerabilità consiglio di aggiornare a questa versione e, nel caso siano ancora visibili &#8220;tracce&#8221; (home page cambiate) dell&#8217;hacker ho notato, per esperienza, che le pagine maggiormente colpite sono 3:</p>
<ul>
<li>configuration.php</li>
<li>index.php (del template attivo nel Cms)</li>
<li>la cartella &#8220;cache&#8221; (consiglio di svuotarla)</li>
</ul>
<p>Provvedete a ripristinare le originali e il problema è risolto.</p>
<p>Dato che trovere il vostro account Admin non accessibile visto che è stata cambiata la password sarà necessario effettuare l&#8217;accesso direttamente al PhpMyAdmin e riscrivere la password nel Database.</p>
<p>Una guida a questa operazione la potete trovare <a href="http://wiki.joomla.it/index.php?title=Recupero_password_admin" target="_blank">qui</a>.</p>
<p>Per chi non avesse sbattimento ho fatto uno scriptino veloce veloce che fa la stessa cosa. Basta copiare il file nella root della vostra installazione Joomla, richiamarlo da Browser e impostare la password.</p>
<p>Il file lo potete scaricare dal seguente link:</p>
<p><a href="http://www.capn3m0.org/wp-content/uploads/2008/09/change_pwd.rar">Joomla Change Admin Password</a></p>
<p>Infine, x chi ha molto sbattimento, di seguito la guida a come fixare tale vulnerabilità manualmente.</p>
<ol>
<li>Aprire il file &#8220;/components/com_user/models/reset.php&#8221;</li>
<li>Posizionarsi alla riga 113 dopo la riga &#8220;global $mainframe;&#8221; ed inserire il seguente codice<br />
<blockquote><p><strong>if(strlen($token) != 32) {<br />
 $this-&gt;setError(JText::_(&#8216;INVALID_TOKEN&#8217;));<br />
 return false;<br />
 }</strong></p>
</blockquote>
</li>
<li>
<pre>Fine dei giochi! <img src='http://www.capn3m0.org/wp-includes/images/smilies/icon_biggrin.gif' alt="[EXPLOIT] Joomla 1.5.x Remote Admin Password Change" class='wp-smiley' title="[EXPLOIT] Joomla 1.5.x Remote Admin Password Change pics" /> </pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.capn3m0.org/joomla-15x-remote-admin-password-change.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: www.capn3m0.org @ 2012-02-09 06:29:13 by W3 Total Cache -->
